
#ifndef AFTERMATH_RANDOM_ZIGGURAT_NORMAL_1024_LCG31_HPP_INCLUDED
#define AFTERMATH_RANDOM_ZIGGURAT_NORMAL_1024_LCG31_HPP_INCLUDED

#include "../double_constants.hpp"
#include "../probability/dist_normal.hpp"
#include "../template_math.hpp"
#include "ziggurat_core.hpp"
#include "ziggurat_normal.hpp"

#include <cmath>
#include <cstdint>

namespace aftermath
{
    namespace random
    {
        template <typename t_uniform_type>
        struct ziggurat_normal<1024U, t_uniform_type, std::size_t, mersenne_number<31>::value - 2>
            : public ziggurat_core<1024U, ziggurat_normal<1024U, t_uniform_type, std::size_t, mersenne_number<31>::value - 2>, t_uniform_type, std::size_t, mersenne_number<31>::value - 2, double>
        {
            static const std::uint_fast32_t n_boxes = 1024U;
            static const std::size_t diameter = mersenne_number<31>::value - 2;

            typedef t_uniform_type  uniform_type;
            typedef double          result_type;
            typedef std::size_t     bounds_type;
            typedef ziggurat_normal<n_boxes, uniform_type, bounds_type, diameter> type;
            typedef ziggurat_core<n_boxes, type, uniform_type, bounds_type, diameter, double> base_type;
            
            // Inherited typedef's:
            typedef type ziggurat_impl_type;

        private:
            const result_type  right_tail_x = 3.8520461503683912;
            const result_type  left_tail_x = -3.8520461503683912;
            const result_type  box_volume = 0.00098010797069741627;
            const uniform_type box_volume_uint32 = 2104765;

            // Zero-based index of the box that covers the right tail.
            static const std::uint_fast32_t right_tail_index = 0;
            // Zero-based index of the box that covers the left tail.
            static const std::uint_fast32_t left_tail_index = n_boxes - 1;

            // The right (left) x-endpoints of the boxes, modified for the tail boxes: { x_0*, x_1, x_2, ..., x_{n - 1}, x_n* }.
            const result_type  m_width_scaled[n_boxes] = {
                1.9077484550425928e-9,   1.7937487699846458e-9,   1.7039258660725515e-9,   1.6478424860170942e-9,   1.6065042401033915e-9,   1.5735257661358412e-9,   1.5459602113340572e-9,   1.5221980035523522e-9,
                1.5012610745485027e-9,   1.4825093933303816e-9,   1.4655006090726107e-9,   1.4499158648177098e-9,   1.4355175155936399e-9,   1.4221235638076609e-9,   1.4095914483466467e-9,   1.3978073533934358e-9,
                1.3866789213339190e-9,   1.3761301445236841e-9,   1.3660976967166141e-9,   1.3565282422607345e-9,   1.3473764255163362e-9,   1.3386033436368362e-9,   1.3301753693571228e-9,   1.3220632315337296e-9,
                1.3142412883998372e-9,   1.3066869469004339e-9,   1.2993801941491530e-9,   1.2923032159294227e-9,   1.2854400834817852e-9,   1.2787764943797174e-9,   1.2722995566306715e-9,   1.2659976076064359e-9,
                1.2598600612531763e-9,   1.2538772784273349e-9,   1.2480404562690354e-9,   1.2423415333452780e-9,   1.2367731079325919e-9,   1.2313283673077747e-9,   1.2260010263088525e-9,   1.2207852737408850e-9,
                1.2156757254510402e-9,   1.2106673830982797e-9,   1.2057555978055529e-9,   1.2009360380146444e-9,   1.1962046609719810e-9,   1.1915576873626054e-9,   1.1869915786829504e-9,   1.1825030170039585e-9,
                1.1780888868268500e-9,   1.1737462587763094e-9,   1.1694723749115276e-9,   1.1652646354656188e-9,   1.1611205868493774e-9,   1.1570379107769546e-9,   1.1530144143894457e-9,   1.1490480212681176e-9,
                1.1451367632424966e-9,   1.1412787729101380e-9,   1.1374722767949032e-9,   1.1337155890792182e-9,   1.1300071058532885e-9,   1.1263452998307585e-9,   1.1227287154859875e-9,   1.1191559645730685e-9,
                1.1156257219910602e-9,   1.1121367219637085e-9,   1.1086877545052850e-9,   1.1052776621471144e-9,   1.1019053369019729e-9,   1.0985697174458352e-9,   1.0952697864984953e-9,   1.0920045683863923e-9,
                1.0887731267725865e-9,   1.0855745625402652e-9,   1.0824080118174384e-9,   1.0792726441316289e-9,   1.0761676606843864e-9,   1.0730922927363736e-9,   1.0700458000945976e-9,   1.0670274696941008e-9,
                1.0640366142670937e-9,   1.0610725710931152e-9,   1.0581347008243484e-9,   1.0552223863807128e-9,   1.0523350319097977e-9,   1.0494720618071055e-9,   1.0466329197924409e-9,   1.0438170680386124e-9,
                1.0410239863489159e-9,   1.0382531713801477e-9,   1.0355041359081411e-9,   1.0327764081330550e-9,   1.0300695310218474e-9,   1.0273830616855625e-9,   1.0247165707892326e-9,   1.0220696419923572e-9,
                1.0194418714180697e-9,   1.0168328671492374e-9,   1.0142422487498630e-9,   1.0116696468102726e-9,   1.0091147025146790e-9,   1.0065770672298056e-9,   1.0040564021133473e-9,   1.0015523777411247e-9,
                9.9906467375186797e-10,  9.9659297850863201e-10,  9.9413698877591486e-10,  9.9169640941160796e-10,  9.8927095307296440e-10,  9.8686033993582271e-10,  9.8446429742637192e-10,  9.8208255996478792e-10,
                9.7971486872011307e-10,  9.7736097137578916e-10,  9.7502062190528995e-10,  9.7269358035733269e-10,  9.7037961265017936e-10,  9.6807849037456710e-10,  9.6578999060483460e-10,  9.6351389571783614e-10,
                9.6124999321925895e-10,  9.5899807557698117e-10,  9.5675794006112852e-10,  9.5452938859050707e-10,  9.5231222758510729e-10,  9.5010626782439174e-10,  9.4791132431109435e-10,  9.4572721614027428e-10,
                9.4355376637338093e-10,  9.4139080191710024e-10,  9.3923815340676405e-10,  9.3709565509411643e-10,  9.3496314473924123e-10,  9.3284046350646554e-10,  9.3072745586406326e-10,  9.2862396948759198e-10,
                9.2652985516670491e-10,  9.2444496671528740e-10,  9.2236916088477556e-10,  9.2030229728052106e-10,  9.1824423828107324e-10,  9.1619484896025606e-10,  9.1415399701192288e-10,  9.1212155267727849e-10,
                9.1009738867466233e-10,  9.0808138013169254e-10,  9.0607340451967478e-10,  9.0407334159018456e-10,  9.0208107331373599e-10,  9.0009648382045377e-10,  8.9811945934266941e-10,  8.9614988815936583e-10,
                8.9418766054239838e-10,  8.9223266870442328e-10,  8.9028480674846763e-10,  8.8834397061907825e-10,  8.8641005805498906e-10,  8.8448296854324969e-10,  8.8256260327476037e-10,  8.8064886510116042e-10,
                8.7874165849302019e-10,  8.7684088949928822e-10,  8.7494646570794760e-10,  8.7305829620783732e-10,  8.7117629155159640e-10,  8.6930036371969023e-10,  8.6743042608548032e-10,  8.6556639338130024e-10,
                8.6370818166550203e-10,  8.6185570829043874e-10,  8.6000889187135050e-10,  8.5816765225612224e-10,  8.5633191049588303e-10,  8.5450158881641791e-10,  8.5267661059036421e-10,  8.5085690031016560e-10,
                8.4904238356175808e-10,  8.4723298699896312e-10,  8.4542863831856410e-10,  8.4362926623604320e-10,  8.4183480046195665e-10,  8.4004517167892709e-10,  8.3826031151923276e-10,  8.3648015254297376e-10,
                8.3470462821679652e-10,  8.3293367289315823e-10,  8.3116722179011373e-10,  8.2940521097160788e-10,  8.2764757732825723e-10,  8.2589425855860513e-10,  8.2414519315083529e-10,  8.2240032036492907e-10,
                8.2065958021525246e-10,  8.1892291345355919e-10,  8.1719026155239677e-10,  8.1546156668890285e-10,  8.1373677172897967e-10,  8.1201582021183482e-10,  8.1029865633487678e-10,  8.0858522493895441e-10,
                8.0687547149392959e-10,  8.0516934208457279e-10,  8.0346678339677152e-10,  8.0176774270404227e-10,  8.0007216785433626e-10,  7.9838000725713036e-10,  7.9669120987079426e-10,  7.9500572519022542e-10,
                7.9332350323474376e-10,  7.9164449453623817e-10,  7.8996865012755696e-10,  7.8829592153113514e-10,  7.8662626074785109e-10,  7.8495962024610571e-10,  7.8329595295111732e-10,  7.8163521223442575e-10,
                7.7997735190359911e-10,  7.7832232619213727e-10,  7.7667008974956590e-10,  7.7502059763171527e-10,  7.7337380529117820e-10,  7.7172966856794160e-10,  7.7008814368018628e-10,  7.6844918721524988e-10,
                7.6681275612074773e-10,  7.6517880769584694e-10,  7.6354729958268870e-10,  7.6191818975795433e-10,  7.6029143652457040e-10,  7.5866699850354863e-10,  7.5704483462595615e-10,  7.5542490412501202e-10,
                7.5380716652830586e-10,  7.5219158165013464e-10,  7.5057810958395366e-10,  7.4896671069493807e-10,  7.4735734561265105e-10,  7.4574997522381511e-10,  7.4414456066518295e-10,  7.4254106331650444e-10,
                7.4093944479358627e-10,  7.3933966694144099e-10,  7.3774169182752218e-10,  7.3614548173504255e-10,  7.3455099915637189e-10,  7.3295820678651177e-10,  7.3136706751664394e-10,  7.2977754442774962e-10,
                7.2818960078429665e-10,  7.2660320002799169e-10,  7.2501830577159469e-10,  7.2343488179279284e-10,  7.2185289202813138e-10,  7.2027230056699842e-10,  7.1869307164566129e-10,  7.1711516964135180e-10,
                7.1553855906639775e-10,  7.1396320456239824e-10,  7.1238907089444027e-10,  7.1081612294535414e-10,  7.0924432571000513e-10,  7.0767364428961916e-10,  7.0610404388613992e-10,  7.0453548979661511e-10,
                7.0296794740760947e-10,  7.0140138218964210e-10,  6.9983575969164593e-10,  6.9827104553544685e-10,  6.9670720541026023e-10,  6.9514420506720252e-10,  6.9358201031381567e-10,  6.9202058700860195e-10,
                6.9045990105556701e-10,  6.8889991839876874e-10,  6.8734060501686979e-10,  6.8578192691769127e-10,  6.8422385013276546e-10,  6.8266634071188518e-10,  6.8110936471764741e-10,  6.7955288821998899e-10,
                6.7799687729071186e-10,  6.7644129799799564e-10,  6.7488611640089508e-10,  6.7333129854382004e-10,  6.7177681045099548e-10,  6.7022261812089916e-10,  6.6866868752067449e-10,  6.6711498458051602e-10,
                6.6556147518802516e-10,  6.6400812518253347e-10,  6.6245490034939092e-10,  6.6090176641421662e-10,  6.5934868903710924e-10,  6.5779563380681448e-10,  6.5624256623484677e-10,  6.5468945174956256e-10,
                6.5313625569018213e-10,  6.5158294330075727e-10,  6.5002947972408169e-10,  6.4847582999554130e-10,  6.4692195903690116e-10,  6.4536783165002610e-10,  6.4381341251053173e-10,  6.4225866616136262e-10,
                6.4070355700629426e-10,  6.3914804930335550e-10,  6.3759210715816779e-10,  6.3603569451719784e-10,  6.3447877516091994e-10,  6.3292131269688410e-10,  6.3136327055268633e-10,  6.2980461196883697e-10,
                6.2824529999152308e-10,  6.2668529746526063e-10,  6.2512456702543236e-10,  6.2356307109070670e-10,  6.2200077185533340e-10,  6.2043763128131113e-10,  6.1887361109042218e-10,  6.1730867275612952e-10,
                6.1574277749533082e-10,  6.1417588625996455e-10,  6.1260795972846243e-10,  6.1103895829704283e-10,  6.0946884207083930e-10,  6.0789757085485837e-10,  6.0632510414476028e-10,  6.0475140111745660e-10,
                6.0317642062151799e-10,  6.0160012116738529e-10,  6.0002246091737721e-10,  5.9844339767548710e-10,  5.9686288887696149e-10,  5.9528089157765253e-10,  5.9369736244313653e-10,  5.9211225773759001e-10,
                5.9052553331241484e-10,  5.8893714459460361e-10,  5.8734704657483579e-10,  5.8575519379529528e-10,  5.8416154033719939e-10,  5.8256603980802883e-10,  5.8096864532844818e-10,  5.7936930951890565e-10,
                5.7776798448590060e-10,  5.7616462180790687e-10,  5.7455917252093949e-10,  5.7295158710375185e-10,  5.7134181546264985e-10,  5.6972980691590908e-10,  5.6811551017778053e-10,  5.6649887334206963e-10,
                5.6487984386527296e-10,  5.6325836854925614e-10,  5.6163439352345598e-10,  5.6000786422658892e-10,  5.5837872538784742e-10,  5.5674692100756482e-10,  5.5511239433732866e-10,  5.5347508785952142e-10,
                5.5183494326626669e-10,  5.5019190143775802e-10,  5.4854590241994649e-10,  5.4689688540156212e-10,  5.4524478869044303e-10,  5.4358954968914522e-10,  5.4193110486980439e-10,  5.4026938974822015e-10,
                5.3860433885713162e-10,  5.3693588571865156e-10,  5.3526396281582531e-10,  5.3358850156327864e-10,  5.3190943227691729e-10,  5.3022668414263901e-10,  5.2854018518401705e-10,  5.2684986222891221e-10,
                5.2515564087496825e-10,  5.2345744545394344e-10,  5.2175519899482846e-10,  5.2004882318569870e-10,  5.1833823833424606e-10,  5.1662336332693278e-10,  5.1490411558670680e-10,  5.1318041102921513e-10,
                5.1145216401744826e-10,  5.0971928731474532e-10,  5.0798169203608578e-10,  5.0623928759758981e-10,  5.0449198166414490e-10,  5.0273968009507228e-10,  5.0098228688774157e-10,  4.9921970411903735e-10,
                4.9745183188457597e-10,  4.9567856823556502e-10,  4.9389980911319204e-10,  4.9211544828042262e-10,  4.9032537725108095e-10,  4.8852948521607872e-10,  4.8672765896665044e-10,  4.8491978281444482e-10,
                4.8310573850831289e-10,  4.8128540514762423e-10,  4.7945865909193210e-10,  4.7762537386679771e-10,  4.7578542006557190e-10,  4.7393866524692008e-10,  4.7208497382786295e-10,  4.7022420697209075e-10,
                4.6835622247329375e-10,  4.6648087463323481e-10,  4.6459801413427194e-10,  4.6270748790601963e-10,  4.6080913898581712e-10,  4.5890280637264931e-10,  4.5698832487414201e-10,  4.5506552494622734e-10,
                4.5313423252504718e-10,  4.5119426885063195e-10,  4.4924545028185987e-10,  4.4728758810216578e-10,  4.4532048831543085e-10,  4.4334395143144248e-10,  4.4135777224026888e-10,  4.3936173957484371e-10,
                4.3735563606100290e-10,  4.3533923785415803e-10,  4.3331231436172742e-10,  4.3127462795037734e-10,  4.2922593363705100e-10,  4.2716597876268092e-10,  4.2509450264739061e-10,  4.2301123622589407e-10,
                4.2091590166169364e-10,  4.1880821193855959e-10,  4.1668787042764533e-10,  4.1455457042845018e-10,  4.1240799468168538e-10,  4.1024781485192674e-10,  4.0807369097774735e-10,  4.0588527088681394e-10,
                4.0368218957319837e-10,  4.0146406853389864e-10,  3.9923051506127865e-10,  3.9698112148781940e-10,  3.9471546437922211e-10,  3.9243310367151137e-10,  3.9013358174734877e-10,  3.8781642244627864e-10,
                3.8548113000307996e-10,  3.8312718790778506e-10,  3.8075405768023656e-10,  3.7836117755127904e-10,  3.7594796104180788e-10,  3.7351379542991132e-10,  3.7105804009522547e-10,  3.6858002472835640e-10,
                3.6607904739178565e-10,  3.6355437241703874e-10,  3.6100522812102814e-10,  3.5843080432234609e-10,  3.5583024963583335e-10,  3.5320266852093514e-10,  3.5054711805611248e-10,  3.4786260440782960e-10,
                3.4514807895829722e-10,  3.4240243405110783e-10,  3.3962449830802103e-10,  3.3681303146328636e-10,  3.3396671865383292e-10,  3.3108416409417286e-10,  3.2816388405366836e-10,  3.2520429904053976e-10,
                3.2220372508120130e-10,  3.1916036396464611e-10,  3.1607229229897061e-10,  3.1293744919985706e-10,  3.0975362239781840e-10,  3.0651843251084539e-10,  3.0322931517998324e-10,  2.9988350070498258e-10,
                2.9647799074250702e-10,  2.9300953153649810e-10,  2.8947458303401214e-10,  2.8586928309326149e-10,  2.8218940580448545e-10,  2.7843031270616363e-10,  2.7458689537192875e-10,  2.7065350744383326e-10,
                2.6662388366258310e-10,  2.6249104274868401e-10,  2.5824717005395321e-10,  2.5388347463455217e-10,  2.4939001365332986e-10,  2.4475547458951189e-10,  2.3996690229587491e-10,  2.3500935299804001e-10,
                2.2986545008542598e-10,  2.2451480571316019e-10,  2.1893325567713661e-10,  2.1309182906736494e-10,  2.0695533233963570e-10,  2.0048035770704538e-10,  1.9361240519419891e-10,  1.8628159011098712e-10,
                1.7839599458020713e-10,  1.6983088833999439e-10,  1.6041023362804236e-10,  1.4987257435767658e-10,  1.3780181429289598e-10,  1.2346667790383516e-10,  1.0536457641673105e-10,  7.9356873713826671e-11,
                -7.9356873713826671e-11, -1.0536457641673105e-10, -1.2346667790383516e-10, -1.3780181429289598e-10, -1.4987257435767658e-10, -1.6041023362804236e-10, -1.6983088833999439e-10, -1.7839599458020713e-10,
                -1.8628159011098712e-10, -1.9361240519419891e-10, -2.0048035770704538e-10, -2.0695533233963570e-10, -2.1309182906736494e-10, -2.1893325567713661e-10, -2.2451480571316019e-10, -2.2986545008542598e-10,
                -2.3500935299804001e-10, -2.3996690229587491e-10, -2.4475547458951189e-10, -2.4939001365332986e-10, -2.5388347463455217e-10, -2.5824717005395321e-10, -2.6249104274868401e-10, -2.6662388366258310e-10,
                -2.7065350744383326e-10, -2.7458689537192875e-10, -2.7843031270616363e-10, -2.8218940580448545e-10, -2.8586928309326149e-10, -2.8947458303401214e-10, -2.9300953153649810e-10, -2.9647799074250702e-10,
                -2.9988350070498258e-10, -3.0322931517998324e-10, -3.0651843251084539e-10, -3.0975362239781840e-10, -3.1293744919985706e-10, -3.1607229229897061e-10, -3.1916036396464611e-10, -3.2220372508120130e-10,
                -3.2520429904053976e-10, -3.2816388405366836e-10, -3.3108416409417286e-10, -3.3396671865383292e-10, -3.3681303146328636e-10, -3.3962449830802103e-10, -3.4240243405110783e-10, -3.4514807895829722e-10,
                -3.4786260440782960e-10, -3.5054711805611248e-10, -3.5320266852093514e-10, -3.5583024963583335e-10, -3.5843080432234609e-10, -3.6100522812102814e-10, -3.6355437241703874e-10, -3.6607904739178565e-10,
                -3.6858002472835640e-10, -3.7105804009522547e-10, -3.7351379542991132e-10, -3.7594796104180788e-10, -3.7836117755127904e-10, -3.8075405768023656e-10, -3.8312718790778506e-10, -3.8548113000307996e-10,
                -3.8781642244627864e-10, -3.9013358174734877e-10, -3.9243310367151137e-10, -3.9471546437922211e-10, -3.9698112148781940e-10, -3.9923051506127865e-10, -4.0146406853389864e-10, -4.0368218957319837e-10,
                -4.0588527088681394e-10, -4.0807369097774735e-10, -4.1024781485192674e-10, -4.1240799468168538e-10, -4.1455457042845018e-10, -4.1668787042764533e-10, -4.1880821193855959e-10, -4.2091590166169364e-10,
                -4.2301123622589407e-10, -4.2509450264739061e-10, -4.2716597876268092e-10, -4.2922593363705100e-10, -4.3127462795037734e-10, -4.3331231436172742e-10, -4.3533923785415803e-10, -4.3735563606100290e-10,
                -4.3936173957484371e-10, -4.4135777224026888e-10, -4.4334395143144248e-10, -4.4532048831543085e-10, -4.4728758810216578e-10, -4.4924545028185987e-10, -4.5119426885063195e-10, -4.5313423252504718e-10,
                -4.5506552494622734e-10, -4.5698832487414201e-10, -4.5890280637264931e-10, -4.6080913898581712e-10, -4.6270748790601963e-10, -4.6459801413427194e-10, -4.6648087463323481e-10, -4.6835622247329375e-10,
                -4.7022420697209075e-10, -4.7208497382786295e-10, -4.7393866524692008e-10, -4.7578542006557190e-10, -4.7762537386679771e-10, -4.7945865909193210e-10, -4.8128540514762423e-10, -4.8310573850831289e-10,
                -4.8491978281444482e-10, -4.8672765896665044e-10, -4.8852948521607872e-10, -4.9032537725108095e-10, -4.9211544828042262e-10, -4.9389980911319204e-10, -4.9567856823556502e-10, -4.9745183188457597e-10,
                -4.9921970411903735e-10, -5.0098228688774157e-10, -5.0273968009507228e-10, -5.0449198166414490e-10, -5.0623928759758981e-10, -5.0798169203608578e-10, -5.0971928731474532e-10, -5.1145216401744826e-10,
                -5.1318041102921513e-10, -5.1490411558670680e-10, -5.1662336332693278e-10, -5.1833823833424606e-10, -5.2004882318569870e-10, -5.2175519899482846e-10, -5.2345744545394344e-10, -5.2515564087496825e-10,
                -5.2684986222891221e-10, -5.2854018518401705e-10, -5.3022668414263901e-10, -5.3190943227691729e-10, -5.3358850156327864e-10, -5.3526396281582531e-10, -5.3693588571865156e-10, -5.3860433885713162e-10,
                -5.4026938974822015e-10, -5.4193110486980439e-10, -5.4358954968914522e-10, -5.4524478869044303e-10, -5.4689688540156212e-10, -5.4854590241994649e-10, -5.5019190143775802e-10, -5.5183494326626669e-10,
                -5.5347508785952142e-10, -5.5511239433732866e-10, -5.5674692100756482e-10, -5.5837872538784742e-10, -5.6000786422658892e-10, -5.6163439352345598e-10, -5.6325836854925614e-10, -5.6487984386527296e-10,
                -5.6649887334206963e-10, -5.6811551017778053e-10, -5.6972980691590908e-10, -5.7134181546264985e-10, -5.7295158710375185e-10, -5.7455917252093949e-10, -5.7616462180790687e-10, -5.7776798448590060e-10,
                -5.7936930951890565e-10, -5.8096864532844818e-10, -5.8256603980802883e-10, -5.8416154033719939e-10, -5.8575519379529528e-10, -5.8734704657483579e-10, -5.8893714459460361e-10, -5.9052553331241484e-10,
                -5.9211225773759001e-10, -5.9369736244313653e-10, -5.9528089157765253e-10, -5.9686288887696149e-10, -5.9844339767548710e-10, -6.0002246091737721e-10, -6.0160012116738529e-10, -6.0317642062151799e-10,
                -6.0475140111745660e-10, -6.0632510414476028e-10, -6.0789757085485837e-10, -6.0946884207083930e-10, -6.1103895829704283e-10, -6.1260795972846243e-10, -6.1417588625996455e-10, -6.1574277749533082e-10,
                -6.1730867275612952e-10, -6.1887361109042218e-10, -6.2043763128131113e-10, -6.2200077185533340e-10, -6.2356307109070670e-10, -6.2512456702543236e-10, -6.2668529746526063e-10, -6.2824529999152308e-10,
                -6.2980461196883697e-10, -6.3136327055268633e-10, -6.3292131269688410e-10, -6.3447877516091994e-10, -6.3603569451719784e-10, -6.3759210715816779e-10, -6.3914804930335550e-10, -6.4070355700629426e-10,
                -6.4225866616136262e-10, -6.4381341251053173e-10, -6.4536783165002610e-10, -6.4692195903690116e-10, -6.4847582999554130e-10, -6.5002947972408169e-10, -6.5158294330075727e-10, -6.5313625569018213e-10,
                -6.5468945174956256e-10, -6.5624256623484677e-10, -6.5779563380681448e-10, -6.5934868903710924e-10, -6.6090176641421662e-10, -6.6245490034939092e-10, -6.6400812518253347e-10, -6.6556147518802516e-10,
                -6.6711498458051602e-10, -6.6866868752067449e-10, -6.7022261812089916e-10, -6.7177681045099548e-10, -6.7333129854382004e-10, -6.7488611640089508e-10, -6.7644129799799564e-10, -6.7799687729071186e-10,
                -6.7955288821998899e-10, -6.8110936471764741e-10, -6.8266634071188518e-10, -6.8422385013276546e-10, -6.8578192691769127e-10, -6.8734060501686979e-10, -6.8889991839876874e-10, -6.9045990105556701e-10,
                -6.9202058700860195e-10, -6.9358201031381567e-10, -6.9514420506720252e-10, -6.9670720541026023e-10, -6.9827104553544685e-10, -6.9983575969164593e-10, -7.0140138218964210e-10, -7.0296794740760947e-10,
                -7.0453548979661511e-10, -7.0610404388613992e-10, -7.0767364428961916e-10, -7.0924432571000513e-10, -7.1081612294535414e-10, -7.1238907089444027e-10, -7.1396320456239824e-10, -7.1553855906639775e-10,
                -7.1711516964135180e-10, -7.1869307164566129e-10, -7.2027230056699842e-10, -7.2185289202813138e-10, -7.2343488179279284e-10, -7.2501830577159469e-10, -7.2660320002799169e-10, -7.2818960078429665e-10,
                -7.2977754442774962e-10, -7.3136706751664394e-10, -7.3295820678651177e-10, -7.3455099915637189e-10, -7.3614548173504255e-10, -7.3774169182752218e-10, -7.3933966694144099e-10, -7.4093944479358627e-10,
                -7.4254106331650444e-10, -7.4414456066518295e-10, -7.4574997522381511e-10, -7.4735734561265105e-10, -7.4896671069493807e-10, -7.5057810958395366e-10, -7.5219158165013464e-10, -7.5380716652830586e-10,
                -7.5542490412501202e-10, -7.5704483462595615e-10, -7.5866699850354863e-10, -7.6029143652457040e-10, -7.6191818975795433e-10, -7.6354729958268870e-10, -7.6517880769584694e-10, -7.6681275612074773e-10,
                -7.6844918721524988e-10, -7.7008814368018628e-10, -7.7172966856794160e-10, -7.7337380529117820e-10, -7.7502059763171527e-10, -7.7667008974956590e-10, -7.7832232619213727e-10, -7.7997735190359911e-10,
                -7.8163521223442575e-10, -7.8329595295111732e-10, -7.8495962024610571e-10, -7.8662626074785109e-10, -7.8829592153113514e-10, -7.8996865012755696e-10, -7.9164449453623817e-10, -7.9332350323474376e-10,
                -7.9500572519022542e-10, -7.9669120987079426e-10, -7.9838000725713036e-10, -8.0007216785433626e-10, -8.0176774270404227e-10, -8.0346678339677152e-10, -8.0516934208457279e-10, -8.0687547149392959e-10,
                -8.0858522493895441e-10, -8.1029865633487678e-10, -8.1201582021183482e-10, -8.1373677172897967e-10, -8.1546156668890285e-10, -8.1719026155239677e-10, -8.1892291345355919e-10, -8.2065958021525246e-10,
                -8.2240032036492907e-10, -8.2414519315083529e-10, -8.2589425855860513e-10, -8.2764757732825723e-10, -8.2940521097160788e-10, -8.3116722179011373e-10, -8.3293367289315823e-10, -8.3470462821679652e-10,
                -8.3648015254297376e-10, -8.3826031151923276e-10, -8.4004517167892709e-10, -8.4183480046195665e-10, -8.4362926623604320e-10, -8.4542863831856410e-10, -8.4723298699896312e-10, -8.4904238356175808e-10,
                -8.5085690031016560e-10, -8.5267661059036421e-10, -8.5450158881641791e-10, -8.5633191049588303e-10, -8.5816765225612224e-10, -8.6000889187135050e-10, -8.6185570829043874e-10, -8.6370818166550203e-10,
                -8.6556639338130024e-10, -8.6743042608548032e-10, -8.6930036371969023e-10, -8.7117629155159640e-10, -8.7305829620783732e-10, -8.7494646570794760e-10, -8.7684088949928822e-10, -8.7874165849302019e-10,
                -8.8064886510116042e-10, -8.8256260327476037e-10, -8.8448296854324969e-10, -8.8641005805498906e-10, -8.8834397061907825e-10, -8.9028480674846763e-10, -8.9223266870442328e-10, -8.9418766054239838e-10,
                -8.9614988815936583e-10, -8.9811945934266941e-10, -9.0009648382045377e-10, -9.0208107331373599e-10, -9.0407334159018456e-10, -9.0607340451967478e-10, -9.0808138013169254e-10, -9.1009738867466233e-10,
                -9.1212155267727849e-10, -9.1415399701192288e-10, -9.1619484896025606e-10, -9.1824423828107324e-10, -9.2030229728052106e-10, -9.2236916088477556e-10, -9.2444496671528740e-10, -9.2652985516670491e-10,
                -9.2862396948759198e-10, -9.3072745586406326e-10, -9.3284046350646554e-10, -9.3496314473924123e-10, -9.3709565509411643e-10, -9.3923815340676405e-10, -9.4139080191710024e-10, -9.4355376637338093e-10,
                -9.4572721614027428e-10, -9.4791132431109435e-10, -9.5010626782439174e-10, -9.5231222758510729e-10, -9.5452938859050707e-10, -9.5675794006112852e-10, -9.5899807557698117e-10, -9.6124999321925895e-10,
                -9.6351389571783614e-10, -9.6578999060483460e-10, -9.6807849037456710e-10, -9.7037961265017936e-10, -9.7269358035733269e-10, -9.7502062190528995e-10, -9.7736097137578916e-10, -9.7971486872011307e-10,
                -9.8208255996478792e-10, -9.8446429742637192e-10, -9.8686033993582271e-10, -9.8927095307296440e-10, -9.9169640941160796e-10, -9.9413698877591486e-10, -9.9659297850863201e-10, -9.9906467375186797e-10,
                -1.0015523777411247e-9,  -1.0040564021133473e-9,  -1.0065770672298056e-9,  -1.0091147025146790e-9,  -1.0116696468102726e-9,  -1.0142422487498630e-9,  -1.0168328671492374e-9,  -1.0194418714180697e-9,
                -1.0220696419923572e-9,  -1.0247165707892326e-9,  -1.0273830616855625e-9,  -1.0300695310218474e-9,  -1.0327764081330550e-9,  -1.0355041359081411e-9,  -1.0382531713801477e-9,  -1.0410239863489159e-9,
                -1.0438170680386124e-9,  -1.0466329197924409e-9,  -1.0494720618071055e-9,  -1.0523350319097977e-9,  -1.0552223863807128e-9,  -1.0581347008243484e-9,  -1.0610725710931152e-9,  -1.0640366142670937e-9,
                -1.0670274696941008e-9,  -1.0700458000945976e-9,  -1.0730922927363736e-9,  -1.0761676606843864e-9,  -1.0792726441316289e-9,  -1.0824080118174384e-9,  -1.0855745625402652e-9,  -1.0887731267725865e-9,
                -1.0920045683863923e-9,  -1.0952697864984953e-9,  -1.0985697174458352e-9,  -1.1019053369019729e-9,  -1.1052776621471144e-9,  -1.1086877545052850e-9,  -1.1121367219637085e-9,  -1.1156257219910602e-9,
                -1.1191559645730685e-9,  -1.1227287154859875e-9,  -1.1263452998307585e-9,  -1.1300071058532885e-9,  -1.1337155890792182e-9,  -1.1374722767949032e-9,  -1.1412787729101380e-9,  -1.1451367632424966e-9,
                -1.1490480212681176e-9,  -1.1530144143894457e-9,  -1.1570379107769546e-9,  -1.1611205868493774e-9,  -1.1652646354656188e-9,  -1.1694723749115276e-9,  -1.1737462587763094e-9,  -1.1780888868268500e-9,
                -1.1825030170039585e-9,  -1.1869915786829504e-9,  -1.1915576873626054e-9,  -1.1962046609719810e-9,  -1.2009360380146444e-9,  -1.2057555978055529e-9,  -1.2106673830982797e-9,  -1.2156757254510402e-9,
                -1.2207852737408850e-9,  -1.2260010263088525e-9,  -1.2313283673077747e-9,  -1.2367731079325919e-9,  -1.2423415333452780e-9,  -1.2480404562690354e-9,  -1.2538772784273349e-9,  -1.2598600612531763e-9,
                -1.2659976076064359e-9,  -1.2722995566306715e-9,  -1.2787764943797174e-9,  -1.2854400834817852e-9,  -1.2923032159294227e-9,  -1.2993801941491530e-9,  -1.3066869469004339e-9,  -1.3142412883998372e-9,
                -1.3220632315337296e-9,  -1.3301753693571228e-9,  -1.3386033436368362e-9,  -1.3473764255163362e-9,  -1.3565282422607345e-9,  -1.3660976967166141e-9,  -1.3761301445236841e-9,  -1.3866789213339190e-9,
                -1.3978073533934358e-9,  -1.4095914483466467e-9,  -1.4221235638076609e-9,  -1.4355175155936399e-9,  -1.4499158648177098e-9,  -1.4655006090726107e-9,  -1.4825093933303816e-9,  -1.5012610745485027e-9,
                -1.5221980035523522e-9,  -1.5459602113340572e-9,  -1.5735257661358412e-9,  -1.6065042401033915e-9,  -1.6478424860170942e-9,  -1.7039258660725515e-9,  -1.7937487699846458e-9,  -1.9077484550425928e-9
            };
            // (<diameter> + 1)-scaled heights of the boxes: { f(x_1), f(x_2) - f(x_1), ..., f(x_{n - 2}) - f(x_{n - 1}), f(x_{n - 2}) }.
            const result_type  m_height_scaled[n_boxes] = {
                1.1140202360341362e-13,  1.1848205388308085e-13,  1.2472786677503351e-13,  1.2897290864961113e-13,  1.3229161374908850e-13,  1.3506422518897826e-13,  1.3747251504916455e-13,  1.3961852395158621e-13,
                1.4156567569831071e-13,  1.4335628453631559e-13,  1.4502009559212731e-13,  1.4657887645415252e-13,  1.4804907366814187e-13,  1.4944344065926371e-13,  1.5077208269623821e-13,  1.5204315380233342e-13,
                1.5326333670204629e-13,  1.5443818251041376e-13,  1.5557235688840914e-13,  1.5666982212168463e-13,  1.5773397425785228e-13,  1.5876774806240847e-13,  1.5977369850168378e-13,  1.6075406481993870e-13,
                1.6171082151649218e-13,  1.6264571933022056e-13,  1.6356031850800651e-13,  1.6445601604820091e-13,  1.6533406819116228e-13,  1.6619560912489171e-13,  1.6704166665030446e-13,  1.6787317538446696e-13,
                1.6869098795514737e-13,  1.6949588454508966e-13,  1.7028858107161964e-13,  1.7106973623086959e-13,  1.7183995759197426e-13,  1.7259980689205460e-13,  1.7334980465545815e-13,  1.7409043423892107e-13,
                1.7482214538682097e-13,  1.7554535736656437e-13,  1.7626046174268240e-13,  1.7696782483884392e-13,  1.7766778992930949e-13,  1.7836067919501094e-13,  1.7904679547418888e-13,  1.7972642383314896e-13,
                1.8039983297904330e-13,  1.8106727653351681e-13,  1.8172899418347424e-13,  1.8238521272303850e-13,  1.8303614699891646e-13,  1.8368200076980902e-13,  1.8432296748915318e-13,  1.8495923101932740e-13,
                1.8559096628445734e-13,  1.8621833986810227e-13,  1.8684151056136149e-13,  1.8746062986629753e-13,  1.8807584245901520e-13,  1.8868728661624861e-13,  1.8929509460888399e-13,  1.8989939306547396e-13,
                1.9050030330847269e-13,  1.9109794166563454e-13,  1.9169241975876600e-13,  1.9228384477179732e-13,  1.9287231969994307e-13,  1.9345794358154553e-13,  1.9404081171403953e-13,  1.9462101585533911e-13,
                1.9519864441182301e-13,  1.9577378261398597e-13,  1.9634651268072480e-13,  1.9691691397313952e-13,  1.9748506313865138e-13,  1.9805103424616832e-13,  1.9861489891296457e-13,  1.9917672642388372e-13,
                1.9973658384342252e-13,  2.0029453612120592e-13,  2.0085064619132129e-13,  2.0140497506594154e-13,  2.0195758192363194e-13,  2.0250852419270365e-13,  2.0305785762994852e-13,  2.0360563639506333e-13,
                2.0415191312104786e-13,  2.0469673898083940e-13,  2.0524016375042652e-13,  2.0578223586866679e-13,  2.0632300249401628e-13,  2.0686250955836386e-13,  2.0740080181814892e-13,  2.0793792290292879e-13,
                2.0847391536154999e-13,  2.0900882070606679e-13,  2.0954267945354067e-13,  2.1007553116584498e-13,  2.1060741448759072e-13,  2.1113836718228155e-13,  2.1166842616679891e-13,  2.1219762754431154e-13,
                2.1272600663569747e-13,  2.1325359800956092e-13,  2.1378043551092114e-13,  2.1430655228864554e-13,  2.1483198082169477e-13,  2.1535675294424316e-13,  2.1588089986973417e-13,  2.1640445221392675e-13,
                2.1692744001698514e-13,  2.1744989276466155e-13,  2.1797183940861809e-13,  2.1849330838593177e-13,  2.1901432763782366e-13,  2.1953492462765104e-13,  2.2005512635819910e-13,  2.2057495938830661e-13,
                2.2109444984885826e-13,  2.2161362345817421e-13,  2.2213250553682592e-13,  2.2265112102190586e-13,  2.2316949448077673e-13,  2.2368765012432504e-13,  2.2420561181974201e-13,  2.2472340310285401e-13,
                2.2524104719002317e-13,  2.2575856698963809e-13,  2.2627598511321320e-13,  2.2679332388611472e-13,  2.2731060535792994e-13,  2.2782785131249591e-13,  2.2834508327760268e-13,  2.2886232253438567e-13,
                2.2937959012642080e-13,  2.2989690686853547e-13,  2.3041429335534794e-13,  2.3093176996954683e-13,  2.3144935688992211e-13,  2.3196707409915823e-13,  2.3248494139139984e-13,  2.3300297837959966e-13,
                2.3352120450265795e-13,  2.3403963903236241e-13,  2.3455830108013717e-13,  2.3507720960360876e-13,  2.3559638341299699e-13,  2.3611584117733817e-13,  2.3663560143054757e-13,  2.3715568257732827e-13,
                2.3767610289893249e-13,  2.3819688055878197e-13,  2.3871803360795318e-13,  2.3923957999053314e-13,  2.3976153754885139e-13,  2.4028392402859320e-13,  2.4080675708379935e-13,  2.4133005428175706e-13,
                2.4185383310778692e-13,  2.4237811096993021e-13,  2.4290290520354096e-13,  2.4342823307578687e-13,  2.4395411179006315e-13,  2.4448055849032301e-13,  2.4500759026532863e-13,  2.4553522415282609e-13,
                2.4606347714364773e-13,  2.4659236618574535e-13,  2.4712190818815732e-13,  2.4765212002491278e-13,  2.4818301853887595e-13,  2.4871462054553341e-13,  2.4924694283672719e-13,  2.4978000218433632e-13,
                2.5031381534390962e-13,  2.5084839905825208e-13,  2.5138377006096753e-13,  2.5191994507995981e-13,  2.5245694084089495e-13,  2.5299477407062648e-13,  2.5353346150058620e-13,  2.5407301987014249e-13,
                2.5461346592992831e-13,  2.5515481644514087e-13,  2.5569708819881507e-13,  2.5624029799507252e-13,  2.5678446266234818e-13,  2.5732959905659637e-13,  2.5787572406447808e-13,  2.5842285460653126e-13,
                2.5897100764032591e-13,  2.5952020016360566e-13,  2.6007044921741758e-13,  2.6062177188923177e-13,  2.6117418531605244e-13,  2.6172770668752212e-13,  2.6228235324902048e-13,  2.6283814230475941e-13,
                2.6339509122087585e-13,  2.6395321742852392e-13,  2.6451253842696787e-13,  2.6507307178667728e-13,  2.6563483515242610e-13,  2.6619784624639686e-13,  2.6676212287129162e-13,  2.6732768291345107e-13,
                2.6789454434598318e-13,  2.6846272523190294e-13,  2.6903224372728445e-13,  2.6960311808442696e-13,  2.7017536665503622e-13,  2.7074900789342249e-13,  2.7132406035971673e-13,  2.7190054272310637e-13,
                2.7247847376509205e-13,  2.7305787238276678e-13,  2.7363875759211903e-13,  2.7422114853136104e-13,  2.7480506446428393e-13,  2.7539052478364103e-13,  2.7597754901456086e-13,  2.7656615681799136e-13,
                2.7715636799417666e-13,  2.7774820248616812e-13,  2.7834168038337104e-13,  2.7893682192512853e-13,  2.7953364750434427e-13,  2.8013217767114554e-13,  2.8073243313658832e-13,  2.8133443477640580e-13,
                2.8193820363480226e-13,  2.8254376092829376e-13,  2.8315112804959738e-13,  2.8376032657157077e-13,  2.8437137825120374e-13,  2.8498430503366360e-13,  2.8559912905639615e-13,  2.8621587265328409e-13,
                2.8683455835886479e-13,  2.8745520891260916e-13,  2.8807784726326384e-13,  2.8870249657325843e-13,  2.8932918022317991e-13,  2.8995792181631633e-13,  2.9058874518327181e-13,  2.9122167438665506e-13,
                2.9185673372584357e-13,  2.9249394774182579e-13,  2.9313334122212358e-13,  2.9377493920579719e-13,  2.9441876698853537e-13,  2.9506485012783289e-13,  2.9571321444825815e-13,  2.9636388604681333e-13,
                2.9701689129838989e-13,  2.9767225686132201e-13,  2.9833000968304079e-13,  2.9899017700583217e-13,  2.9965278637270137e-13,  3.0031786563334693e-13,  3.0098544295024746e-13,  3.0165554680486426e-13,
                3.0232820600396302e-13,  3.0300344968605806e-13,  3.0368130732798244e-13,  3.0436180875158761e-13,  3.0504498413057602e-13,  3.0573086399747073e-13,  3.0641947925072561e-13,  3.0711086116198020e-13,
                3.0780504138346332e-13,  3.0850205195554954e-13,  3.0920192531447291e-13,  3.0990469430020231e-13,  3.1061039216448311e-13,  3.1131905257904964e-13,  3.1203070964401359e-13,  3.1274539789643312e-13,
                3.1346315231906789e-13,  3.1418400834932543e-13,  3.1490800188840413e-13,  3.1563516931063862e-13,  3.1636554747305338e-13,  3.1709917372513049e-13,  3.1783608591879771e-13,  3.1857632241864341e-13,
                3.1931992211236477e-13,  3.2006692442145624e-13,  3.2081736931214505e-13,  3.2157129730658129e-13,  3.2232874949428984e-13,  3.2308976754389200e-13,  3.2385439371510478e-13,  3.2462267087102614e-13,
                3.2539464249071463e-13,  3.2617035268207242e-13,  3.2694984619504064e-13,  3.2773316843511663e-13,  3.2852036547720281e-13,  3.2931148407979718e-13,  3.3010657169953601e-13,  3.3090567650609947e-13,
                3.3170884739749140e-13,  3.3251613401570471e-13,  3.3332758676278455e-13,  3.3414325681730155e-13,  3.3496319615124799e-13,  3.3578745754737021e-13,  3.3661609461695116e-13,  3.3744916181805721e-13,
                3.3828671447426415e-13,  3.3912880879387779e-13,  3.3997550188966484e-13,  3.4082685179911098e-13,  3.4168291750522281e-13,  3.4254375895789181e-13,  3.4340943709583856e-13,  3.4428001386915639e-13,
                3.4515555226247439e-13,  3.4603611631876031e-13,  3.4692177116378490e-13,  3.4781258303126977e-13,  3.4870861928874211e-13,  3.4960994846412004e-13,  3.5051664027305376e-13,  3.5142876564704836e-13,
                3.5234639676239528e-13,  3.5326960706994050e-13,  3.5419847132571869e-13,  3.5513306562248357e-13,  3.5607346742216628e-13,  3.5701975558929445e-13,  3.5797201042540647e-13,  3.5893031370449638e-13,
                3.5989474870952673e-13,  3.6086540027004805e-13,  3.6184235480096526e-13,  3.6282570034249313e-13,  3.6381552660134459e-13,  3.6481192499319763e-13,  3.6581498868648846e-13,  3.6682481264758076e-13,
                3.6784149368736291e-13,  3.6886513050932734e-13,  3.6989582375918882e-13,  3.7093367607610055e-13,  3.7197879214553002e-13,  3.7303127875385909e-13,  3.7409124484477577e-13,  3.7515880157752823e-13,
                3.7623406238711484e-13,  3.7731714304648739e-13,  3.7840816173084824e-13,  3.7950723908412589e-13,  3.8061449828771761e-13,  3.8173006513159159e-13,  3.8285406808784591e-13,  3.8398663838682599e-13,
                3.8512791009590718e-13,  3.8627802020105435e-13,  3.8743710869127584e-13,  3.8860531864609472e-13,  3.8978279632616677e-13,  3.9096969126718053e-13,  3.9216615637718213e-13,  3.9337234803747446e-13,
                3.9458842620724785e-13,  3.9581455453210777e-13,  3.9705090045667342e-13,  3.9829763534142998e-13,  3.9955493458402732e-13,  4.0082297774522755e-13,  4.0210194867971521e-13,  4.0339203567199460e-13,
                4.0469343157761172e-13,  4.0600633396995029e-13,  4.0733094529286583e-13,  4.0866747301943567e-13,  4.1001612981711860e-13,  4.1137713371963421e-13,  4.1275070830588943e-13,  4.1413708288629849e-13,
                4.1553649269686227e-13,  4.1694917910139428e-13,  4.1837538980230294e-13,  4.1981537906036401e-13,  4.2126940792394253e-13,  4.2273774446815130e-13,  4.2422066404446180e-13,  4.2571844954131538e-13,
                4.2723139165631531e-13,  4.2875978918061672e-13,  4.3030394929616953e-13,  4.3186418788651054e-13,  4.3344082986184511e-13,  4.3503420949920589e-13,  4.3664467079852699e-13,  4.3827256785552620e-13,
                4.3991826525234662e-13,  4.4158213846697174e-13,  4.4326457430249592e-13,  4.4496597133740487e-13,  4.4668674039809942e-13,  4.4842730505498024e-13,  4.5018810214350276e-13,  4.5196958231170972e-13,
                4.5377221059585549e-13,  4.5559646702585121e-13,  4.5744284726238424e-13,  4.5931186326770034e-13,  4.6120404401218266e-13,  4.6311993621902035e-13,  4.6506010514943096e-13,  4.6702513543108759e-13,
                4.6901563193260460e-13,  4.7103222068715584e-13,  4.7307554986854020e-13,  4.7514629082327029e-13,  4.7724513916254614e-13,  4.7937281591828688e-13,  4.8153006876773454e-13,  4.8371767333151587e-13,
                4.8593643455045647e-13,  4.8818718814688828e-13,  4.9047080217668141e-13,  4.9278817867877045e-13,  4.9514025542953669e-13,  4.9752800781005944e-13,  4.9995245079496764e-13,  5.0241464107241423e-13,
                5.0491567930557060e-13,  5.0745671254700503e-13,  5.1003893681837925e-13,  5.1266359986908355e-13,  5.1533200412874757e-13,  5.1804550987002693e-13,  5.2080553859969399e-13,  5.2361357669787568e-13,
                5.2647117932730585e-13,  5.2937997463672277e-13,  5.3234166828507490e-13,  5.3535804831603757e-13,  5.3843099041553096e-13,  5.4156246358851496e-13,  5.4475453629537511e-13,  5.4800938309277144e-13,
                5.5132929182897415e-13,  5.5471667144954474e-13,  5.5817406047584253e-13,  5.6170413622636310e-13,  5.6530972485949032e-13,  5.6899381232603181e-13,  5.7275955633110523e-13,  5.7661029941778123e-13,
                5.8054958329964129e-13,  5.8458116458640142e-13,  5.8870903206637340e-13,  5.9293742573224742e-13,  5.9727085776303989e-13,  6.0171413570572677e-13,  6.0627238813588348e-13,  6.1095109311855452e-13,
                6.1575610983976978e-13,  6.2069371383705902e-13,  6.2577063632577024e-13,  6.3099410819915645e-13,  6.3637190937675979e-13,  6.4191242429094273e-13,  6.4762470443966905e-13,  6.5351853910005449e-13,
                6.5960453549837157e-13,  6.6589420997643913e-13,  6.7240009199225514e-13,  6.7913584315791077e-13,  6.8611639396772274e-13,  6.9335810142677490e-13,  7.0087893148419485e-13,  7.0869867104529119e-13,
                7.1683917543347039e-13,  7.2532465856510139e-13,  7.3418203488027718e-13,  7.4344132436466199e-13,  7.5313613497340104e-13,  7.6330424066404489e-13,  7.7398827839239125e-13,  7.8523659429070939e-13,
                7.9710427850112350e-13,  8.0965444074794546e-13,  8.2295979612721205e-13,  8.3710465489708959e-13,  8.5218744449590807e-13,  8.6832394157665911e-13,  8.8565146436731824e-13,  9.0433438374600895e-13,
                9.2457147578745901e-13,  9.4660589417677446e-13,  9.7073894854716301e-13,  9.9734954337852344e-13,  1.0269222639272291e-12,  1.0600890822860002e-12,  1.0976932919399455e-12,  1.1408912619406274e-12,
                1.1913218058406479e-12,  1.2514039141840940e-12,  1.3248970069505438e-12,  1.4180515636625215e-12,  1.5422658947458219e-12,  1.7213311480168141e-12,  2.0170634728075764e-12,  2.6781175778727955e-12,
                2.6781175778727955e-12,  2.0170634728075764e-12,  1.7213311480168141e-12,  1.5422658947458219e-12,  1.4180515636625215e-12,  1.3248970069505438e-12,  1.2514039141840940e-12,  1.1913218058406479e-12,
                1.1408912619406274e-12,  1.0976932919399455e-12,  1.0600890822860002e-12,  1.0269222639272291e-12,  9.9734954337852344e-13,  9.7073894854716301e-13,  9.4660589417677446e-13,  9.2457147578745901e-13,
                9.0433438374600895e-13,  8.8565146436731824e-13,  8.6832394157665911e-13,  8.5218744449590807e-13,  8.3710465489708959e-13,  8.2295979612721205e-13,  8.0965444074794546e-13,  7.9710427850112350e-13,
                7.8523659429070939e-13,  7.7398827839239125e-13,  7.6330424066404489e-13,  7.5313613497340104e-13,  7.4344132436466199e-13,  7.3418203488027718e-13,  7.2532465856510139e-13,  7.1683917543347039e-13,
                7.0869867104529119e-13,  7.0087893148419485e-13,  6.9335810142677490e-13,  6.8611639396772274e-13,  6.7913584315791077e-13,  6.7240009199225514e-13,  6.6589420997643913e-13,  6.5960453549837157e-13,
                6.5351853910005449e-13,  6.4762470443966905e-13,  6.4191242429094273e-13,  6.3637190937675979e-13,  6.3099410819915645e-13,  6.2577063632577024e-13,  6.2069371383705902e-13,  6.1575610983976978e-13,
                6.1095109311855452e-13,  6.0627238813588348e-13,  6.0171413570572677e-13,  5.9727085776303989e-13,  5.9293742573224742e-13,  5.8870903206637340e-13,  5.8458116458640142e-13,  5.8054958329964129e-13,
                5.7661029941778123e-13,  5.7275955633110523e-13,  5.6899381232603181e-13,  5.6530972485949032e-13,  5.6170413622636310e-13,  5.5817406047584253e-13,  5.5471667144954474e-13,  5.5132929182897415e-13,
                5.4800938309277144e-13,  5.4475453629537511e-13,  5.4156246358851496e-13,  5.3843099041553096e-13,  5.3535804831603757e-13,  5.3234166828507490e-13,  5.2937997463672277e-13,  5.2647117932730585e-13,
                5.2361357669787568e-13,  5.2080553859969399e-13,  5.1804550987002693e-13,  5.1533200412874757e-13,  5.1266359986908355e-13,  5.1003893681837925e-13,  5.0745671254700503e-13,  5.0491567930557060e-13,
                5.0241464107241423e-13,  4.9995245079496764e-13,  4.9752800781005944e-13,  4.9514025542953669e-13,  4.9278817867877045e-13,  4.9047080217668141e-13,  4.8818718814688828e-13,  4.8593643455045647e-13,
                4.8371767333151587e-13,  4.8153006876773454e-13,  4.7937281591828688e-13,  4.7724513916254614e-13,  4.7514629082327029e-13,  4.7307554986854020e-13,  4.7103222068715584e-13,  4.6901563193260460e-13,
                4.6702513543108759e-13,  4.6506010514943096e-13,  4.6311993621902035e-13,  4.6120404401218266e-13,  4.5931186326770034e-13,  4.5744284726238424e-13,  4.5559646702585121e-13,  4.5377221059585549e-13,
                4.5196958231170972e-13,  4.5018810214350276e-13,  4.4842730505498024e-13,  4.4668674039809942e-13,  4.4496597133740487e-13,  4.4326457430249592e-13,  4.4158213846697174e-13,  4.3991826525234662e-13,
                4.3827256785552620e-13,  4.3664467079852699e-13,  4.3503420949920589e-13,  4.3344082986184511e-13,  4.3186418788651054e-13,  4.3030394929616953e-13,  4.2875978918061672e-13,  4.2723139165631531e-13,
                4.2571844954131538e-13,  4.2422066404446180e-13,  4.2273774446815130e-13,  4.2126940792394253e-13,  4.1981537906036401e-13,  4.1837538980230294e-13,  4.1694917910139428e-13,  4.1553649269686227e-13,
                4.1413708288629849e-13,  4.1275070830588943e-13,  4.1137713371963421e-13,  4.1001612981711860e-13,  4.0866747301943567e-13,  4.0733094529286583e-13,  4.0600633396995029e-13,  4.0469343157761172e-13,
                4.0339203567199460e-13,  4.0210194867971521e-13,  4.0082297774522755e-13,  3.9955493458402732e-13,  3.9829763534142998e-13,  3.9705090045667342e-13,  3.9581455453210777e-13,  3.9458842620724785e-13,
                3.9337234803747446e-13,  3.9216615637718213e-13,  3.9096969126718053e-13,  3.8978279632616677e-13,  3.8860531864609472e-13,  3.8743710869127584e-13,  3.8627802020105435e-13,  3.8512791009590718e-13,
                3.8398663838682599e-13,  3.8285406808784591e-13,  3.8173006513159159e-13,  3.8061449828771761e-13,  3.7950723908412589e-13,  3.7840816173084824e-13,  3.7731714304648739e-13,  3.7623406238711484e-13,
                3.7515880157752823e-13,  3.7409124484477577e-13,  3.7303127875385909e-13,  3.7197879214553002e-13,  3.7093367607610055e-13,  3.6989582375918882e-13,  3.6886513050932734e-13,  3.6784149368736291e-13,
                3.6682481264758076e-13,  3.6581498868648846e-13,  3.6481192499319763e-13,  3.6381552660134459e-13,  3.6282570034249313e-13,  3.6184235480096526e-13,  3.6086540027004805e-13,  3.5989474870952673e-13,
                3.5893031370449638e-13,  3.5797201042540647e-13,  3.5701975558929445e-13,  3.5607346742216628e-13,  3.5513306562248357e-13,  3.5419847132571869e-13,  3.5326960706994050e-13,  3.5234639676239528e-13,
                3.5142876564704836e-13,  3.5051664027305376e-13,  3.4960994846412004e-13,  3.4870861928874211e-13,  3.4781258303126977e-13,  3.4692177116378490e-13,  3.4603611631876031e-13,  3.4515555226247439e-13,
                3.4428001386915639e-13,  3.4340943709583856e-13,  3.4254375895789181e-13,  3.4168291750522281e-13,  3.4082685179911098e-13,  3.3997550188966484e-13,  3.3912880879387779e-13,  3.3828671447426415e-13,
                3.3744916181805721e-13,  3.3661609461695116e-13,  3.3578745754737021e-13,  3.3496319615124799e-13,  3.3414325681730155e-13,  3.3332758676278455e-13,  3.3251613401570471e-13,  3.3170884739749140e-13,
                3.3090567650609947e-13,  3.3010657169953601e-13,  3.2931148407979718e-13,  3.2852036547720281e-13,  3.2773316843511663e-13,  3.2694984619504064e-13,  3.2617035268207242e-13,  3.2539464249071463e-13,
                3.2462267087102614e-13,  3.2385439371510478e-13,  3.2308976754389200e-13,  3.2232874949428984e-13,  3.2157129730658129e-13,  3.2081736931214505e-13,  3.2006692442145624e-13,  3.1931992211236477e-13,
                3.1857632241864341e-13,  3.1783608591879771e-13,  3.1709917372513049e-13,  3.1636554747305338e-13,  3.1563516931063862e-13,  3.1490800188840413e-13,  3.1418400834932543e-13,  3.1346315231906789e-13,
                3.1274539789643312e-13,  3.1203070964401359e-13,  3.1131905257904964e-13,  3.1061039216448311e-13,  3.0990469430020231e-13,  3.0920192531447291e-13,  3.0850205195554954e-13,  3.0780504138346332e-13,
                3.0711086116198020e-13,  3.0641947925072561e-13,  3.0573086399747073e-13,  3.0504498413057602e-13,  3.0436180875158761e-13,  3.0368130732798244e-13,  3.0300344968605806e-13,  3.0232820600396302e-13,
                3.0165554680486426e-13,  3.0098544295024746e-13,  3.0031786563334693e-13,  2.9965278637270137e-13,  2.9899017700583217e-13,  2.9833000968304079e-13,  2.9767225686132201e-13,  2.9701689129838989e-13,
                2.9636388604681333e-13,  2.9571321444825815e-13,  2.9506485012783289e-13,  2.9441876698853537e-13,  2.9377493920579719e-13,  2.9313334122212358e-13,  2.9249394774182579e-13,  2.9185673372584357e-13,
                2.9122167438665506e-13,  2.9058874518327181e-13,  2.8995792181631633e-13,  2.8932918022317991e-13,  2.8870249657325843e-13,  2.8807784726326384e-13,  2.8745520891260916e-13,  2.8683455835886479e-13,
                2.8621587265328409e-13,  2.8559912905639615e-13,  2.8498430503366360e-13,  2.8437137825120374e-13,  2.8376032657157077e-13,  2.8315112804959738e-13,  2.8254376092829376e-13,  2.8193820363480226e-13,
                2.8133443477640580e-13,  2.8073243313658832e-13,  2.8013217767114554e-13,  2.7953364750434427e-13,  2.7893682192512853e-13,  2.7834168038337104e-13,  2.7774820248616812e-13,  2.7715636799417666e-13,
                2.7656615681799136e-13,  2.7597754901456086e-13,  2.7539052478364103e-13,  2.7480506446428393e-13,  2.7422114853136104e-13,  2.7363875759211903e-13,  2.7305787238276678e-13,  2.7247847376509205e-13,
                2.7190054272310637e-13,  2.7132406035971673e-13,  2.7074900789342249e-13,  2.7017536665503622e-13,  2.6960311808442696e-13,  2.6903224372728445e-13,  2.6846272523190294e-13,  2.6789454434598318e-13,
                2.6732768291345107e-13,  2.6676212287129162e-13,  2.6619784624639686e-13,  2.6563483515242610e-13,  2.6507307178667728e-13,  2.6451253842696787e-13,  2.6395321742852392e-13,  2.6339509122087585e-13,
                2.6283814230475941e-13,  2.6228235324902048e-13,  2.6172770668752212e-13,  2.6117418531605244e-13,  2.6062177188923177e-13,  2.6007044921741758e-13,  2.5952020016360566e-13,  2.5897100764032591e-13,
                2.5842285460653126e-13,  2.5787572406447808e-13,  2.5732959905659637e-13,  2.5678446266234818e-13,  2.5624029799507252e-13,  2.5569708819881507e-13,  2.5515481644514087e-13,  2.5461346592992831e-13,
                2.5407301987014249e-13,  2.5353346150058620e-13,  2.5299477407062648e-13,  2.5245694084089495e-13,  2.5191994507995981e-13,  2.5138377006096753e-13,  2.5084839905825208e-13,  2.5031381534390962e-13,
                2.4978000218433632e-13,  2.4924694283672719e-13,  2.4871462054553341e-13,  2.4818301853887595e-13,  2.4765212002491278e-13,  2.4712190818815732e-13,  2.4659236618574535e-13,  2.4606347714364773e-13,
                2.4553522415282609e-13,  2.4500759026532863e-13,  2.4448055849032301e-13,  2.4395411179006315e-13,  2.4342823307578687e-13,  2.4290290520354096e-13,  2.4237811096993021e-13,  2.4185383310778692e-13,
                2.4133005428175706e-13,  2.4080675708379935e-13,  2.4028392402859320e-13,  2.3976153754885139e-13,  2.3923957999053314e-13,  2.3871803360795318e-13,  2.3819688055878197e-13,  2.3767610289893249e-13,
                2.3715568257732827e-13,  2.3663560143054757e-13,  2.3611584117733817e-13,  2.3559638341299699e-13,  2.3507720960360876e-13,  2.3455830108013717e-13,  2.3403963903236241e-13,  2.3352120450265795e-13,
                2.3300297837959966e-13,  2.3248494139139984e-13,  2.3196707409915823e-13,  2.3144935688992211e-13,  2.3093176996954683e-13,  2.3041429335534794e-13,  2.2989690686853547e-13,  2.2937959012642080e-13,
                2.2886232253438567e-13,  2.2834508327760268e-13,  2.2782785131249591e-13,  2.2731060535792994e-13,  2.2679332388611472e-13,  2.2627598511321320e-13,  2.2575856698963809e-13,  2.2524104719002317e-13,
                2.2472340310285401e-13,  2.2420561181974201e-13,  2.2368765012432504e-13,  2.2316949448077673e-13,  2.2265112102190586e-13,  2.2213250553682592e-13,  2.2161362345817421e-13,  2.2109444984885826e-13,
                2.2057495938830661e-13,  2.2005512635819910e-13,  2.1953492462765104e-13,  2.1901432763782366e-13,  2.1849330838593177e-13,  2.1797183940861809e-13,  2.1744989276466155e-13,  2.1692744001698514e-13,
                2.1640445221392675e-13,  2.1588089986973417e-13,  2.1535675294424316e-13,  2.1483198082169477e-13,  2.1430655228864554e-13,  2.1378043551092114e-13,  2.1325359800956092e-13,  2.1272600663569747e-13,
                2.1219762754431154e-13,  2.1166842616679891e-13,  2.1113836718228155e-13,  2.1060741448759072e-13,  2.1007553116584498e-13,  2.0954267945354067e-13,  2.0900882070606679e-13,  2.0847391536154999e-13,
                2.0793792290292879e-13,  2.0740080181814892e-13,  2.0686250955836386e-13,  2.0632300249401628e-13,  2.0578223586866679e-13,  2.0524016375042652e-13,  2.0469673898083940e-13,  2.0415191312104786e-13,
                2.0360563639506333e-13,  2.0305785762994852e-13,  2.0250852419270365e-13,  2.0195758192363194e-13,  2.0140497506594154e-13,  2.0085064619132129e-13,  2.0029453612120592e-13,  1.9973658384342252e-13,
                1.9917672642388372e-13,  1.9861489891296457e-13,  1.9805103424616832e-13,  1.9748506313865138e-13,  1.9691691397313952e-13,  1.9634651268072480e-13,  1.9577378261398597e-13,  1.9519864441182301e-13,
                1.9462101585533911e-13,  1.9404081171403953e-13,  1.9345794358154553e-13,  1.9287231969994307e-13,  1.9228384477179732e-13,  1.9169241975876600e-13,  1.9109794166563454e-13,  1.9050030330847269e-13,
                1.8989939306547396e-13,  1.8929509460888399e-13,  1.8868728661624861e-13,  1.8807584245901520e-13,  1.8746062986629753e-13,  1.8684151056136149e-13,  1.8621833986810227e-13,  1.8559096628445734e-13,
                1.8495923101932740e-13,  1.8432296748915318e-13,  1.8368200076980902e-13,  1.8303614699891646e-13,  1.8238521272303850e-13,  1.8172899418347424e-13,  1.8106727653351681e-13,  1.8039983297904330e-13,
                1.7972642383314896e-13,  1.7904679547418888e-13,  1.7836067919501094e-13,  1.7766778992930949e-13,  1.7696782483884392e-13,  1.7626046174268240e-13,  1.7554535736656437e-13,  1.7482214538682097e-13,
                1.7409043423892107e-13,  1.7334980465545815e-13,  1.7259980689205460e-13,  1.7183995759197426e-13,  1.7106973623086959e-13,  1.7028858107161964e-13,  1.6949588454508966e-13,  1.6869098795514737e-13,
                1.6787317538446696e-13,  1.6704166665030446e-13,  1.6619560912489171e-13,  1.6533406819116228e-13,  1.6445601604820091e-13,  1.6356031850800651e-13,  1.6264571933022056e-13,  1.6171082151649218e-13,
                1.6075406481993870e-13,  1.5977369850168378e-13,  1.5876774806240847e-13,  1.5773397425785228e-13,  1.5666982212168463e-13,  1.5557235688840914e-13,  1.5443818251041376e-13,  1.5326333670204629e-13,
                1.5204315380233342e-13,  1.5077208269623821e-13,  1.4944344065926371e-13,  1.4804907366814187e-13,  1.4657887645415252e-13,  1.4502009559212731e-13,  1.4335628453631559e-13,  1.4156567569831071e-13,
                1.3961852395158621e-13,  1.3747251504916455e-13,  1.3506422518897826e-13,  1.3229161374908850e-13,  1.2897290864961113e-13,  1.2472786677503351e-13,  1.1848205388308085e-13,  1.1140202360341362e-13
            };
            // Density at the proper x-endpoints of the boxes, tail boxes treated specially: { 0, f(x_1), f(x_2), ..., f(x_{n - 2}), 0 }.
            const result_type  m_bottom[n_boxes] = {
                0,                       2.3923402393103877e-4,   4.9367229710792774e-4,   7.6152335133250684e-4,   1.0384905635635716e-3,   1.3225846407249795e-3,   1.6126328556130358e-3,   1.9078528335930781e-3,
                2.2076813305973873e-3,   2.5116913041360149e-3,   2.8195465808724316e-3,   3.1309748646429017e-3,   3.4457506048238276e-3,   3.7636835694796606e-3,   4.0846109144468443e-3,   4.4083914964611475e-3,
                4.7349016828899644e-3,   5.0640321921422638e-3,   5.3956856635557787e-3,   5.7297747558988852e-3,   6.0662206368836017e-3,   6.4049517671786585e-3,   6.7459029098136966e-3,   7.0890143145667709e-3,
                7.4342310399563673e-3,   7.7815023847059700e-3,   8.1307814072221704e-3,   8.4820245165162258e-3,   8.8351911216305069e-3,   9.1902433293630107e-3,   9.5471456821619197e-3,   9.9058649296610738e-3,
                1.0266369828569179e-2,   1.0628630966599132e-2,   1.0992620606893513e-2,   1.1358312550015649e-2,   1.1725682011068045e-2,   1.2094705509897984e-2,   1.2465360772674029e-2,   1.2837626643382270e-2,
                1.3211483004009481e-2,   1.3586910702361136e-2,   1.3963891486612604e-2,   1.4342407945817683e-2,   1.4722443455704261e-2,   1.5103982129176085e-2,   1.5487008771015184e-2,   1.5871508836343758e-2,
                1.6257468392459236e-2,   1.6644874083703263e-2,   1.7033713099065817e-2,   1.7423973142260586e-2,   1.7815642404037928e-2,   1.8208709536527989e-2,   1.8603163629429395e-2,   1.8998994187878865e-2,
                1.9396191111854565e-2,   1.9794744676981366e-2,   2.0194645516619604e-2,   2.0595884605130905e-2,   2.0998453242225099e-2,   2.1402343038301582e-2,   2.1807545900706778e-2,   2.2214054020836674e-2,
                2.2621859862020005e-2,   2.3030956148123490e-2,   2.3441335852825800e-2,   2.3852992189511610e-2,   2.4265918601741331e-2,   2.4680108754255915e-2,   2.5095556524479532e-2,   2.5512255994486038e-2,
                2.5930201443397907e-2,   2.6349387340188865e-2,   2.6769808336863732e-2,   2.7191459261991067e-2,   2.7614335114566090e-2,   2.8038431058183106e-2,   2.8463742415498190e-2,   2.8890264662964339e-2,
                2.9317993425822622e-2,   2.9746924473334016e-2,   3.0177053714237757e-2,   3.0608377192423002e-2,   3.1040891082801555e-2,   3.1474591687370217e-2,   3.1909475431452152e-2,   3.2345538860107320e-2,
                3.2782778634702747e-2,   3.3221191529633962e-2,   3.3660774429189542e-2,   3.4101524324551185e-2,   3.4543438310922244e-2,   3.4986513584778084e-2,   3.5430747441232052e-2,   3.5876137271511214e-2,
                3.6322680560536401e-2,   3.6770374884601391e-2,   3.7219217909146425e-2,   3.7669207386621466e-2,   3.8120341154434957e-2,   3.8572617132984009e-2,   3.9026033323762240e-2,   3.9480587807541668e-2,
                3.9936278742625274e-2,   4.0393104363167047e-2,   4.0851062977556491e-2,   4.1310152966864733e-2,   4.1770372783349549e-2,   4.2231720949016756e-2,   4.2694196054235538e-2,   4.3157796756405436e-2,
                4.3622521778672837e-2,   4.4088369908694886e-2,   4.4555339997448900e-2,   4.5023430958085418e-2,   4.5492641764823134e-2,   4.5962971451884061e-2,   4.6434419112467319e-2,   4.6906983897760070e-2,
                4.7380665015984148e-2,   4.7855461731477032e-2,   4.8331373363805877e-2,   4.8808399286913348e-2,   4.9286538928294108e-2,   4.9765791768200833e-2,   5.0246157338878679e-2,   5.0727635223827205e-2,
                5.1210225057088773e-2,   5.1693926522562503e-2,   5.2178739353342904e-2,   5.2664663331082345e-2,   5.3151698285376551e-2,   5.3639844093172376e-2,   5.4129100678197109e-2,   5.4619468010408614e-2,
                5.5110946105465646e-2,   5.5603535024217698e-2,   5.6097234872213760e-2,   5.6592045799229430e-2,   5.7087967998811798e-2,   5.7585001707841572e-2,   5.8083147206111952e-2,   5.8582404815923736e-2,
                5.9082774901696221e-2,   5.9584257869593422e-2,   6.0086854167165203e-2,   6.0590564283002900e-2,   6.1095388746409041e-2,   6.1601328127080794e-2,   6.2108383034806777e-2,   6.2616554119176888e-2,
                6.3125842069304823e-2,   6.3636247613562970e-2,   6.4147771519329366e-2,   6.4660414592746442e-2,   6.5174177678491261e-2,   6.5689061659556996e-2,   6.6205067457045390e-2,   6.6722196029969950e-2,
                6.7240448375069646e-2,   6.7759825526632886e-2,   6.8280328556331562e-2,   6.8801958573064957e-2,   6.9324716722813314e-2,   6.9848604188500885e-2,   7.0373622189868280e-2,   7.0899771983353950e-2,
                7.1427054861984623e-2,   7.1955472155274565e-2,   7.2485025229133489e-2,   7.3015715485782992e-2,   7.3547544363681374e-2,   7.4080513337456708e-2,   7.4614623917848051e-2,   7.5149877651654666e-2,
                7.5686276121693153e-2,   7.6223820946762376e-2,   7.6762513781616103e-2,   7.7302356316943239e-2,   7.7843350279355591e-2,   7.8385497431383059e-2,   7.8928799571476189e-2,   7.9473258534016002e-2,
                8.0018876189331039e-2,   8.0565654443721552e-2,   8.1113595239490778e-2,   8.1662700554983251e-2,   8.2212972404630076e-2,   8.2764412839001150e-2,   8.3317023944864258e-2,   8.3870807845251009e-2,
                8.4425766699529593e-2,   8.4981902703484305e-2,   8.5539218089401815e-2,   8.6097715126164163e-2,   8.6657396119348453e-2,   8.7218263411333223e-2,   8.7780319381411489e-2,   8.8343566445910438e-2,
                8.8908007058317768e-2,   8.9473643709414672e-2,   9.0040478927415463e-2,   9.0608515278113835e-2,   9.1177755365035782e-2,   9.1748201829599157e-2,   9.2319857351279915e-2,   9.2892724647785018e-2,
                9.3466806475232056e-2,   9.4042105628335571e-2,   9.4618624940600137e-2,   9.5196367284520199e-2,   9.5775335571786716e-2,   9.6355532753500635e-2,   9.6936961820393234e-2,   9.7519625803053366e-2,
                9.8103527772161662e-2,   9.8688670838731716e-2,   9.9275058154358320e-2,   9.9862692911472793e-2,   1.0045157834360545e-1,   1.0104171772565528e-1,   1.0163311437416690e-1,   1.0222577164761481e-1,
                1.0281969294669508e-1,   1.0341488171462449e-1,   1.0401134143744718e-1,   1.0460907564434897e-1,   1.0520808790797934e-1,   1.0580838184478118e-1,   1.0640996111532846e-1,   1.0701282942467180e-1,
                1.0761699052269212e-1,   1.0822244820446242e-1,   1.0882920631061781e-1,   1.0943726872773392e-1,   1.1004663938871375e-1,   1.1065732227318306e-1,   1.1126932140789451e-1,   1.1188264086714056e-1,
                1.1249728477317533e-1,   1.1311325729664546e-1,   1.1373056265703025e-1,   1.1434920512309108e-1,   1.1496918901333022e-1,   1.1559051869645942e-1,   1.1621319859187806e-1,   1.1683723317016139e-1,
                1.1746262695355869e-1,   1.1808938451650177e-1,   1.1871751048612381e-1,   1.1934700954278879e-1,   1.1997788642063166e-1,   1.2061014590810945e-1,   1.2124379284856347e-1,   1.2187883214079291e-1,
                1.2251526873963981e-1,   1.2315310765658588e-1,   1.2379235396036116e-1,   1.2443301277756484e-1,   1.2507508929329850e-1,   1.2571858875181186e-1,   1.2636351645716141e-1,   1.2700987777388212e-1,
                1.2765767812767241e-1,   1.2830692300609277e-1,   1.2895761795927817e-1,   1.2960976860066459e-1,   1.3026338060772997e-1,   1.3091845972274975e-1,   1.3157501175356750e-1,   1.3223304257438069e-1,
                1.3289255812654213e-1,   1.3355356441937728e-1,   1.3421606753101776e-1,   1.3488007360925151e-1,   1.3554558887238973e-1,   1.3621261961015121e-1,   1.3688117218456425e-1,   1.3755125303088658e-1,
                1.3822286865854368e-1,   1.3889602565208595e-1,   1.3957073067216503e-1,   1.4024699045652983e-1,   1.4092481182104250e-1,   1.4160420166071508e-1,   1.4228516695076701e-1,   1.4296771474770412e-1,
                1.4365185219041955e-1,   1.4433758650131717e-1,   1.4502492498745783e-1,   1.4571387504172922e-1,   1.4640444414403968e-1,   1.4709663986253663e-1,   1.4779046985485017e-1,   1.4848594186936246e-1,
                1.4918306374650345e-1,   1.4988184342007367e-1,   1.5058228891859464e-1,   1.5128440836668766e-1,   1.5198820998648157e-1,   1.5269370209905032e-1,   1.5340089312588099e-1,   1.5410979159037298e-1,
                1.5482040611936930e-1,   1.5553274544472063e-1,   1.5624681840488301e-1,   1.5696263394655007e-1,   1.5768020112632054e-1,   1.5839952911240220e-1,   1.5912062718635289e-1,   1.5984350474485979e-1,
                1.6056817130155793e-1,   1.6129463648888877e-1,   1.6202291006000021e-1,   1.6275300189068888e-1,   1.6348492198138597e-1,   1.6421868045918768e-1,   1.6495428757993167e-1,   1.6569175373032045e-1,
                1.6643108943009340e-1,   1.6717230533424832e-1,   1.6791541223531425e-1,   1.6866042106567675e-1,   1.6940734289995723e-1,   1.7015618895744775e-1,   1.7090697060460296e-1,   1.7165969935759073e-1,
                1.7241438688490316e-1,   1.7317104501002978e-1,   1.7392968571419459e-1,   1.7469032113915897e-1,   1.7545296359009223e-1,   1.7621762553851192e-1,   1.7698431962529587e-1,   1.7775305866376814e-1,
                1.7852385564286113e-1,   1.7929672373035601e-1,   1.8007167627620405e-1,   1.8084872681593109e-1,   1.8162788907412792e-1,   1.8240917696802900e-1,   1.8319260461118248e-1,   1.8397818631721421e-1,
                1.8476593660368873e-1,   1.8555587019607039e-1,   1.8634800203178769e-1,   1.8714234726440414e-1,   1.8793892126789917e-1,   1.8873773964106250e-1,   1.8953881821200591e-1,   1.9034217304279594e-1,
                1.9114782043421180e-1,   1.9195577693063251e-1,   1.9276605932505760e-1,   1.9357868466426593e-1,   1.9439367025411721e-1,   1.9521103366500119e-1,   1.9603079273743953e-1,   1.9685296558784560e-1,
                1.9767757061444781e-1,   1.9850462650338206e-1,   1.9933415223495936e-1,   2.0016616709011484e-1,   2.0100069065704455e-1,   2.0183774283803693e-1,   2.0267734385650583e-1,   2.0351951426423268e-1,
                2.0436427494882515e-1,   2.0521164714140068e-1,   2.0606165242450297e-1,   2.0691431274026030e-1,   2.0776965039879479e-1,   2.0862768808689214e-1,   2.0948844887694186e-1,   2.1035195623615839e-1,
                2.1121823403609403e-1,   2.1208730656245527e-1,   2.1295919852523416e-1,   2.1383393506916764e-1,   2.1471154178453769e-1,   2.1559204471832618e-1,   2.1647547038573883e-1,   2.1736184578211339e-1,
                2.1825119839522800e-1,   2.1914355621802625e-1,   2.2003894776177657e-1,   2.2093740206968426e-1,   2.2183894873097550e-1,   2.2274361789547354e-1,   2.2365144028868856e-1,   2.2456244722744352e-1,
                2.2547667063605969e-1,   2.2639414306312668e-1,   2.2731489769888322e-1,   2.2823896839323627e-1,   2.2916638967444748e-1,   2.3009719676851790e-1,   2.3103142561930302e-1,   2.3196911290939256e-1,
                2.3291029608179100e-1,   2.3385501336243702e-1,   2.3480330378360213e-1,   2.3575520720821116e-1,   2.3671076435512970e-1,   2.3767001682546636e-1,   2.3863300712994021e-1,   2.3959977871736735e-1,
                2.4057037600432316e-1,   2.4154484440604080e-1,   2.4252323036860979e-1,   2.4350558140254288e-1,   2.4449194611778337e-1,   2.4548237426022980e-1,   2.4647691674985983e-1,   2.4747562572054033e-1,
                2.4847855456161655e-1,   2.4948575796137919e-1,   2.5049729195251495e-1,   2.5151321395965318e-1,   2.5253358284912886e-1,   2.5355845898109066e-1,   2.5458790426409153e-1,   2.5562198221230902e-1,
                2.5666075800555334e-1,   2.5770429855223193e-1,   2.5875267255545229e-1,   2.5980595058245768e-1,   2.6086420513760525e-1,   2.6192751073911159e-1,   2.6299594399980818e-1,   2.6406958371216794e-1,
                2.6514851093788433e-1,   2.6623280910230694e-1,   2.6732256409406201e-1,   2.6841786437021274e-1,   2.6951880106734375e-1,   2.7062546811898598e-1,   2.7173796237983364e-1,   2.7285638375724351e-1,
                2.7398083535054937e-1,   2.7511142359877157e-1,   2.7624825843735320e-1,   2.7739145346461210e-1,   2.7854112611866063e-1,   2.7969739786561599e-1,   2.8086039440000136e-1,   2.8203024585832475e-1,
                2.8320708704691903e-1,   2.8439105768523385e-1,   2.8558230266589002e-1,   2.8678097233294148e-1,   2.8798722277993985e-1,   2.8920121616956568e-1,   2.9042312107678002e-1,   2.9165311285766404e-1,
                2.9289137404635550e-1,   2.9413809478276414e-1,   2.9539347327405766e-1,   2.9665771629326139e-1,   2.9793103971871567e-1,   2.9921366911859146e-1,   3.0050584038518825e-1,   3.0180780042433769e-1,
                3.0311980790592656e-1,   3.0444213408234781e-1,   3.0577506368260859e-1,   3.0711889589089096e-1,   3.0847394541960200e-1,   3.0984054368839876e-1,   3.1121904012236968e-1,   3.1260980358454708e-1,
                3.1401322396027578e-1,   3.1542971391374556e-1,   3.1685971084030195e-1,   3.1830367904209661e-1,   3.1976211215936978e-1,   3.2123553589535408e-1,   3.2272451107968304e-1,   3.2422963712357219e-1,
                3.2575155593029258e-1,   3.2729095633706492e-1,   3.2884857918009934e-1,   3.3042522309392592e-1,   3.3202175118050305e-1,   3.3363909871432321e-1,   3.3527828208883500e-1,   3.3694040925965235e-1,
                3.3862669200491762e-1,   3.4033846040795251e-1,   3.4207718007917966e-1,   3.4384447278350130e-1,   3.4564214134072038e-1,   3.4747219994195406e-1,   3.4933691140678852e-1,   3.5123883344345894e-1,
                3.5318087674397331e-1,   3.5516637886870954e-1,   3.5719919954660798e-1,   3.5928384556411898e-1,   3.6142563739886728e-1,   3.6363093616739122e-1,   3.6590746013596364e-1,   3.6826473852982627e-1,
                3.7071478385784896e-1,   3.7327312795420626e-1,   3.7596049739570840e-1,   3.7880569205209394e-1,   3.8185093459566198e-1,   3.8516292538395446e-1,   3.8885945587539230e-1,   3.9319106669820760e-1,
                3.9319106669820760e-1,   3.8885945587539230e-1,   3.8516292538395446e-1,   3.8185093459566198e-1,   3.7880569205209394e-1,   3.7596049739570840e-1,   3.7327312795420626e-1,   3.7071478385784896e-1,
                3.6826473852982627e-1,   3.6590746013596364e-1,   3.6363093616739122e-1,   3.6142563739886728e-1,   3.5928384556411898e-1,   3.5719919954660798e-1,   3.5516637886870954e-1,   3.5318087674397331e-1,
                3.5123883344345894e-1,   3.4933691140678852e-1,   3.4747219994195406e-1,   3.4564214134072038e-1,   3.4384447278350130e-1,   3.4207718007917966e-1,   3.4033846040795251e-1,   3.3862669200491762e-1,
                3.3694040925965235e-1,   3.3527828208883500e-1,   3.3363909871432321e-1,   3.3202175118050305e-1,   3.3042522309392592e-1,   3.2884857918009934e-1,   3.2729095633706492e-1,   3.2575155593029258e-1,
                3.2422963712357219e-1,   3.2272451107968304e-1,   3.2123553589535408e-1,   3.1976211215936978e-1,   3.1830367904209661e-1,   3.1685971084030195e-1,   3.1542971391374556e-1,   3.1401322396027578e-1,
                3.1260980358454708e-1,   3.1121904012236968e-1,   3.0984054368839876e-1,   3.0847394541960200e-1,   3.0711889589089096e-1,   3.0577506368260859e-1,   3.0444213408234781e-1,   3.0311980790592656e-1,
                3.0180780042433769e-1,   3.0050584038518825e-1,   2.9921366911859146e-1,   2.9793103971871567e-1,   2.9665771629326139e-1,   2.9539347327405766e-1,   2.9413809478276414e-1,   2.9289137404635550e-1,
                2.9165311285766404e-1,   2.9042312107678002e-1,   2.8920121616956568e-1,   2.8798722277993985e-1,   2.8678097233294148e-1,   2.8558230266589002e-1,   2.8439105768523385e-1,   2.8320708704691903e-1,
                2.8203024585832475e-1,   2.8086039440000136e-1,   2.7969739786561599e-1,   2.7854112611866063e-1,   2.7739145346461210e-1,   2.7624825843735320e-1,   2.7511142359877157e-1,   2.7398083535054937e-1,
                2.7285638375724351e-1,   2.7173796237983364e-1,   2.7062546811898598e-1,   2.6951880106734375e-1,   2.6841786437021274e-1,   2.6732256409406201e-1,   2.6623280910230694e-1,   2.6514851093788433e-1,
                2.6406958371216794e-1,   2.6299594399980818e-1,   2.6192751073911159e-1,   2.6086420513760525e-1,   2.5980595058245768e-1,   2.5875267255545229e-1,   2.5770429855223193e-1,   2.5666075800555334e-1,
                2.5562198221230902e-1,   2.5458790426409153e-1,   2.5355845898109066e-1,   2.5253358284912886e-1,   2.5151321395965318e-1,   2.5049729195251495e-1,   2.4948575796137919e-1,   2.4847855456161655e-1,
                2.4747562572054033e-1,   2.4647691674985983e-1,   2.4548237426022980e-1,   2.4449194611778337e-1,   2.4350558140254288e-1,   2.4252323036860979e-1,   2.4154484440604080e-1,   2.4057037600432316e-1,
                2.3959977871736735e-1,   2.3863300712994021e-1,   2.3767001682546636e-1,   2.3671076435512970e-1,   2.3575520720821116e-1,   2.3480330378360213e-1,   2.3385501336243702e-1,   2.3291029608179100e-1,
                2.3196911290939256e-1,   2.3103142561930302e-1,   2.3009719676851790e-1,   2.2916638967444748e-1,   2.2823896839323627e-1,   2.2731489769888322e-1,   2.2639414306312668e-1,   2.2547667063605969e-1,
                2.2456244722744352e-1,   2.2365144028868856e-1,   2.2274361789547354e-1,   2.2183894873097550e-1,   2.2093740206968426e-1,   2.2003894776177657e-1,   2.1914355621802625e-1,   2.1825119839522800e-1,
                2.1736184578211339e-1,   2.1647547038573883e-1,   2.1559204471832618e-1,   2.1471154178453769e-1,   2.1383393506916764e-1,   2.1295919852523416e-1,   2.1208730656245527e-1,   2.1121823403609403e-1,
                2.1035195623615839e-1,   2.0948844887694186e-1,   2.0862768808689214e-1,   2.0776965039879479e-1,   2.0691431274026030e-1,   2.0606165242450297e-1,   2.0521164714140068e-1,   2.0436427494882515e-1,
                2.0351951426423268e-1,   2.0267734385650583e-1,   2.0183774283803693e-1,   2.0100069065704455e-1,   2.0016616709011484e-1,   1.9933415223495936e-1,   1.9850462650338206e-1,   1.9767757061444781e-1,
                1.9685296558784560e-1,   1.9603079273743953e-1,   1.9521103366500119e-1,   1.9439367025411721e-1,   1.9357868466426593e-1,   1.9276605932505760e-1,   1.9195577693063251e-1,   1.9114782043421180e-1,
                1.9034217304279594e-1,   1.8953881821200591e-1,   1.8873773964106250e-1,   1.8793892126789917e-1,   1.8714234726440414e-1,   1.8634800203178769e-1,   1.8555587019607039e-1,   1.8476593660368873e-1,
                1.8397818631721421e-1,   1.8319260461118248e-1,   1.8240917696802900e-1,   1.8162788907412792e-1,   1.8084872681593109e-1,   1.8007167627620405e-1,   1.7929672373035601e-1,   1.7852385564286113e-1,
                1.7775305866376814e-1,   1.7698431962529587e-1,   1.7621762553851192e-1,   1.7545296359009223e-1,   1.7469032113915897e-1,   1.7392968571419459e-1,   1.7317104501002978e-1,   1.7241438688490316e-1,
                1.7165969935759073e-1,   1.7090697060460296e-1,   1.7015618895744775e-1,   1.6940734289995723e-1,   1.6866042106567675e-1,   1.6791541223531425e-1,   1.6717230533424832e-1,   1.6643108943009340e-1,
                1.6569175373032045e-1,   1.6495428757993167e-1,   1.6421868045918768e-1,   1.6348492198138597e-1,   1.6275300189068888e-1,   1.6202291006000021e-1,   1.6129463648888877e-1,   1.6056817130155793e-1,
                1.5984350474485979e-1,   1.5912062718635289e-1,   1.5839952911240220e-1,   1.5768020112632054e-1,   1.5696263394655007e-1,   1.5624681840488301e-1,   1.5553274544472063e-1,   1.5482040611936930e-1,
                1.5410979159037298e-1,   1.5340089312588099e-1,   1.5269370209905032e-1,   1.5198820998648157e-1,   1.5128440836668766e-1,   1.5058228891859464e-1,   1.4988184342007367e-1,   1.4918306374650345e-1,
                1.4848594186936246e-1,   1.4779046985485017e-1,   1.4709663986253663e-1,   1.4640444414403968e-1,   1.4571387504172922e-1,   1.4502492498745783e-1,   1.4433758650131717e-1,   1.4365185219041955e-1,
                1.4296771474770412e-1,   1.4228516695076701e-1,   1.4160420166071508e-1,   1.4092481182104250e-1,   1.4024699045652983e-1,   1.3957073067216503e-1,   1.3889602565208595e-1,   1.3822286865854368e-1,
                1.3755125303088658e-1,   1.3688117218456425e-1,   1.3621261961015121e-1,   1.3554558887238973e-1,   1.3488007360925151e-1,   1.3421606753101776e-1,   1.3355356441937728e-1,   1.3289255812654213e-1,
                1.3223304257438069e-1,   1.3157501175356750e-1,   1.3091845972274975e-1,   1.3026338060772997e-1,   1.2960976860066459e-1,   1.2895761795927817e-1,   1.2830692300609277e-1,   1.2765767812767241e-1,
                1.2700987777388212e-1,   1.2636351645716141e-1,   1.2571858875181186e-1,   1.2507508929329850e-1,   1.2443301277756484e-1,   1.2379235396036116e-1,   1.2315310765658588e-1,   1.2251526873963981e-1,
                1.2187883214079291e-1,   1.2124379284856347e-1,   1.2061014590810945e-1,   1.1997788642063166e-1,   1.1934700954278879e-1,   1.1871751048612381e-1,   1.1808938451650177e-1,   1.1746262695355869e-1,
                1.1683723317016139e-1,   1.1621319859187806e-1,   1.1559051869645942e-1,   1.1496918901333022e-1,   1.1434920512309108e-1,   1.1373056265703025e-1,   1.1311325729664546e-1,   1.1249728477317533e-1,
                1.1188264086714056e-1,   1.1126932140789451e-1,   1.1065732227318306e-1,   1.1004663938871375e-1,   1.0943726872773392e-1,   1.0882920631061781e-1,   1.0822244820446242e-1,   1.0761699052269212e-1,
                1.0701282942467180e-1,   1.0640996111532846e-1,   1.0580838184478118e-1,   1.0520808790797934e-1,   1.0460907564434897e-1,   1.0401134143744718e-1,   1.0341488171462449e-1,   1.0281969294669508e-1,
                1.0222577164761481e-1,   1.0163311437416690e-1,   1.0104171772565528e-1,   1.0045157834360545e-1,   9.9862692911472793e-2,   9.9275058154358320e-2,   9.8688670838731716e-2,   9.8103527772161662e-2,
                9.7519625803053366e-2,   9.6936961820393234e-2,   9.6355532753500635e-2,   9.5775335571786716e-2,   9.5196367284520199e-2,   9.4618624940600137e-2,   9.4042105628335571e-2,   9.3466806475232056e-2,
                9.2892724647785018e-2,   9.2319857351279915e-2,   9.1748201829599157e-2,   9.1177755365035782e-2,   9.0608515278113835e-2,   9.0040478927415463e-2,   8.9473643709414672e-2,   8.8908007058317768e-2,
                8.8343566445910438e-2,   8.7780319381411489e-2,   8.7218263411333223e-2,   8.6657396119348453e-2,   8.6097715126164163e-2,   8.5539218089401815e-2,   8.4981902703484305e-2,   8.4425766699529593e-2,
                8.3870807845251009e-2,   8.3317023944864258e-2,   8.2764412839001150e-2,   8.2212972404630076e-2,   8.1662700554983251e-2,   8.1113595239490778e-2,   8.0565654443721552e-2,   8.0018876189331039e-2,
                7.9473258534016002e-2,   7.8928799571476189e-2,   7.8385497431383059e-2,   7.7843350279355591e-2,   7.7302356316943239e-2,   7.6762513781616103e-2,   7.6223820946762376e-2,   7.5686276121693153e-2,
                7.5149877651654666e-2,   7.4614623917848051e-2,   7.4080513337456708e-2,   7.3547544363681374e-2,   7.3015715485782992e-2,   7.2485025229133489e-2,   7.1955472155274565e-2,   7.1427054861984623e-2,
                7.0899771983353950e-2,   7.0373622189868280e-2,   6.9848604188500885e-2,   6.9324716722813314e-2,   6.8801958573064957e-2,   6.8280328556331562e-2,   6.7759825526632886e-2,   6.7240448375069646e-2,
                6.6722196029969950e-2,   6.6205067457045390e-2,   6.5689061659556996e-2,   6.5174177678491261e-2,   6.4660414592746442e-2,   6.4147771519329366e-2,   6.3636247613562970e-2,   6.3125842069304823e-2,
                6.2616554119176888e-2,   6.2108383034806777e-2,   6.1601328127080794e-2,   6.1095388746409041e-2,   6.0590564283002900e-2,   6.0086854167165203e-2,   5.9584257869593422e-2,   5.9082774901696221e-2,
                5.8582404815923736e-2,   5.8083147206111952e-2,   5.7585001707841572e-2,   5.7087967998811798e-2,   5.6592045799229430e-2,   5.6097234872213760e-2,   5.5603535024217698e-2,   5.5110946105465646e-2,
                5.4619468010408614e-2,   5.4129100678197109e-2,   5.3639844093172376e-2,   5.3151698285376551e-2,   5.2664663331082345e-2,   5.2178739353342904e-2,   5.1693926522562503e-2,   5.1210225057088773e-2,
                5.0727635223827205e-2,   5.0246157338878679e-2,   4.9765791768200833e-2,   4.9286538928294108e-2,   4.8808399286913348e-2,   4.8331373363805877e-2,   4.7855461731477032e-2,   4.7380665015984148e-2,
                4.6906983897760070e-2,   4.6434419112467319e-2,   4.5962971451884061e-2,   4.5492641764823134e-2,   4.5023430958085418e-2,   4.4555339997448900e-2,   4.4088369908694886e-2,   4.3622521778672837e-2,
                4.3157796756405436e-2,   4.2694196054235538e-2,   4.2231720949016756e-2,   4.1770372783349549e-2,   4.1310152966864733e-2,   4.0851062977556491e-2,   4.0393104363167047e-2,   3.9936278742625274e-2,
                3.9480587807541668e-2,   3.9026033323762240e-2,   3.8572617132984009e-2,   3.8120341154434957e-2,   3.7669207386621466e-2,   3.7219217909146425e-2,   3.6770374884601391e-2,   3.6322680560536401e-2,
                3.5876137271511214e-2,   3.5430747441232052e-2,   3.4986513584778084e-2,   3.4543438310922244e-2,   3.4101524324551185e-2,   3.3660774429189542e-2,   3.3221191529633962e-2,   3.2782778634702747e-2,
                3.2345538860107320e-2,   3.1909475431452152e-2,   3.1474591687370217e-2,   3.1040891082801555e-2,   3.0608377192423002e-2,   3.0177053714237757e-2,   2.9746924473334016e-2,   2.9317993425822622e-2,
                2.8890264662964339e-2,   2.8463742415498190e-2,   2.8038431058183106e-2,   2.7614335114566090e-2,   2.7191459261991067e-2,   2.6769808336863732e-2,   2.6349387340188865e-2,   2.5930201443397907e-2,
                2.5512255994486038e-2,   2.5095556524479532e-2,   2.4680108754255915e-2,   2.4265918601741331e-2,   2.3852992189511610e-2,   2.3441335852825800e-2,   2.3030956148123490e-2,   2.2621859862020005e-2,
                2.2214054020836674e-2,   2.1807545900706778e-2,   2.1402343038301582e-2,   2.0998453242225099e-2,   2.0595884605130905e-2,   2.0194645516619604e-2,   1.9794744676981366e-2,   1.9396191111854565e-2,
                1.8998994187878865e-2,   1.8603163629429395e-2,   1.8208709536527989e-2,   1.7815642404037928e-2,   1.7423973142260586e-2,   1.7033713099065817e-2,   1.6644874083703263e-2,   1.6257468392459236e-2,
                1.5871508836343758e-2,   1.5487008771015184e-2,   1.5103982129176085e-2,   1.4722443455704261e-2,   1.4342407945817683e-2,   1.3963891486612604e-2,   1.3586910702361136e-2,   1.3211483004009481e-2,
                1.2837626643382270e-2,   1.2465360772674029e-2,   1.2094705509897984e-2,   1.1725682011068045e-2,   1.1358312550015649e-2,   1.0992620606893513e-2,   1.0628630966599132e-2,   1.0266369828569179e-2,
                9.9058649296610738e-3,   9.5471456821619197e-3,   9.1902433293630107e-3,   8.8351911216305069e-3,   8.4820245165162258e-3,   8.1307814072221704e-3,   7.7815023847059700e-3,   7.4342310399563673e-3,
                7.0890143145667709e-3,   6.7459029098136966e-3,   6.4049517671786585e-3,   6.0662206368836017e-3,   5.7297747558988852e-3,   5.3956856635557787e-3,   5.0640321921422638e-3,   4.7349016828899644e-3,
                4.4083914964611475e-3,   4.0846109144468443e-3,   3.7636835694796606e-3,   3.4457506048238276e-3,   3.1309748646429017e-3,   2.8195465808724316e-3,   2.5116913041360149e-3,   2.2076813305973873e-3,
                1.9078528335930781e-3,   1.6126328556130358e-3,   1.3225846407249795e-3,   1.0384905635635716e-3,   7.6152335133250684e-4,   4.9367229710792774e-4,   2.3923402393103877e-4,   0
            };
            // (<diameter> + 1)-scaled probability of simple coverage of the boxes: { (x_1 - m) / (x_0* - m), (x_2 - m) / (x_1 - m), ..., (m - x_{n - 1}) / (m - x_n*) }.
            const uniform_type m_coverage_scaled[n_boxes] = {
                2019158312,    2039947284,    2076800911,    2093611260,    2103399895,    2109863304,    2114475712,    2117946285,
                2120660245,    2122845633,    2124646410,    2126158120,    2127446766,    2128559473,    2129530820,    2130386780,
                2131147258,    2131827774,    2132440618,    2132995650,    2133500880,    2133962885,    2134387115,    2134778131,
                2135139776,    2135475313,    2135787535,    2136078843,    2136351312,    2136606751,    2136846739,    2137072663,
                2137285745,    2137487070,    2137677599,    2137858192,    2138029615,    2138192561,    2138347648,    2138495439,
                2138636441,    2138771114,    2138899879,    2139023117,    2139141178,    2139254382,    2139363022,    2139467369,
                2139567671,    2139664158,    2139757041,    2139846517,    2139932768,    2140015963,    2140096259,    2140173802,
                2140248728,    2140321165,    2140391232,    2140459039,    2140524692,    2140588287,    2140649917,    2140709668,
                2140767621,    2140823853,    2140878435,    2140931435,    2140982917,    2141032943,    2141081569,    2141128849,
                2141174835,    2141219576,    2141263117,    2141305503,    2141346775,    2141386973,    2141426135,    2141464295,
                2141501489,    2141537749,    2141573106,    2141607590,    2141641228,    2141674048,    2141706076,    2141737336,
                2141767851,    2141797645,    2141826739,    2141855154,    2141882909,    2141910024,    2141936516,    2141962404,
                2141987704,    2142012432,    2142036604,    2142060235,    2142083338,    2142105929,    2142128020,    2142149623,
                2142170752,    2142191418,    2142211632,    2142231406,    2142250750,    2142269675,    2142288189,    2142306304,
                2142324027,    2142341368,    2142358336,    2142374938,    2142391183,    2142407079,    2142422633,    2142437852,
                2142452743,    2142467313,    2142481569,    2142495516,    2142509162,    2142522512,    2142535571,    2142548346,
                2142560842,    2142573064,    2142585017,    2142596706,    2142608135,    2142619311,    2142630236,    2142640915,
                2142651353,    2142661554,    2142671521,    2142681259,    2142690771,    2142700061,    2142709133,    2142717989,
                2142726633,    2142735069,    2142743299,    2142751327,    2142759156,    2142766788,    2142774226,    2142781474,
                2142788533,    2142795406,    2142802095,    2142808604,    2142814935,    2142821089,    2142827069,    2142832877,
                2142838515,    2142843986,    2142849291,    2142854432,    2142859411,    2142864230,    2142868891,    2142873394,
                2142877743,    2142881939,    2142885982,    2142889876,    2142893620,    2142897217,    2142900669,    2142903975,
                2142907138,    2142910159,    2142913039,    2142915780,    2142918382,    2142920847,    2142923175,    2142925368,
                2142927427,    2142929352,    2142931146,    2142932808,    2142934339,    2142935741,    2142937013,    2142938158,
                2142939176,    2142940067,    2142940832,    2142941472,    2142941987,    2142942379,    2142942647,    2142942792,
                2142942816,    2142942717,    2142942498,    2142942158,    2142941697,    2142941117,    2142940417,    2142939599,
                2142938661,    2142937605,    2142936431,    2142935140,    2142933731,    2142932204,    2142930561,    2142928801,
                2142926924,    2142924930,    2142922820,    2142920594,    2142918252,    2142915793,    2142913219,    2142910528,
                2142907722,    2142904799,    2142901760,    2142898606,    2142895335,    2142891948,    2142888444,    2142884824,
                2142881087,    2142877234,    2142873263,    2142869175,    2142864970,    2142860647,    2142856206,    2142851647,
                2142846970,    2142842173,    2142837257,    2142832222,    2142827066,    2142821791,    2142816394,    2142810876,
                2142805236,    2142799474,    2142793590,    2142787582,    2142781450,    2142775193,    2142768812,    2142762305,
                2142755672,    2142748912,    2142742024,    2142735008,    2142727863,    2142720588,    2142713182,    2142705645,
                2142697976,    2142690173,    2142682237,    2142674166,    2142665959,    2142657615,    2142649134,    2142640514,
                2142631754,    2142622853,    2142613811,    2142604626,    2142595296,    2142585821,    2142576200,    2142566431,
                2142556513,    2142546445,    2142536225,    2142525853,    2142515326,    2142504643,    2142493804,    2142482805,
                2142471647,    2142460327,    2142448844,    2142437196,    2142425381,    2142413398,    2142401245,    2142388921,
                2142376423,    2142363749,    2142350899,    2142337869,    2142324658,    2142311263,    2142297684,    2142283917,
                2142269960,    2142255812,    2142241469,    2142226931,    2142212193,    2142197255,    2142182113,    2142166764,
                2142151207,    2142135439,    2142119456,    2142103257,    2142086838,    2142070197,    2142053330,    2142036235,
                2142018908,    2142001346,    2141983547,    2141965506,    2141947220,    2141928687,    2141909902,    2141890861,
                2141871562,    2141851999,    2141832171,    2141812071,    2141791697,    2141771044,    2141750108,    2141728885,
                2141707370,    2141685558,    2141663446,    2141641027,    2141618298,    2141595252,    2141571886,    2141548193,
                2141524169,    2141499808,    2141475104,    2141450051,    2141424643,    2141398875,    2141372739,    2141346230,
                2141319341,    2141292066,    2141264396,    2141236325,    2141207846,    2141178952,    2141149634,    2141119885,
                2141089696,    2141059059,    2141027966,    2140996408,    2140964375,    2140931859,    2140898850,    2140865338,
                2140831313,    2140796764,    2140761681,    2140726054,    2140689869,    2140653117,    2140615785,    2140577860,
                2140539330,    2140500182,    2140460402,    2140419977,    2140378892,    2140337132,    2140294682,    2140251527,
                2140207650,    2140163034,    2140117662,    2140071517,    2140024581,    2139976833,    2139928254,    2139878825,
                2139828524,    2139777330,    2139725219,    2139672170,    2139618158,    2139563158,    2139507144,    2139450090,
                2139391968,    2139332751,    2139272407,    2139210906,    2139148217,    2139084306,    2139019140,    2138952682,
                2138884895,    2138815741,    2138745180,    2138673170,    2138599669,    2138524630,    2138448008,    2138369753,
                2138289814,    2138208139,    2138124671,    2138039354,    2137952128,    2137862928,    2137771690,    2137678345,
                2137582820,    2137485042,    2137384930,    2137282403,    2137177374,    2137069753,    2136959444,    2136846348,
                2136730360,    2136611370,    2136489262,    2136363913,    2136235196,    2136102975,    2135967108,    2135827444,
                2135683823,    2135536078,    2135384031,    2135227493,    2135066266,    2134900137,    2134728883,    2134552264,
                2134370029,    2134181906,    2133987609,    2133786832,    2133579246,    2133364504,    2133142231,    2132912027,
                2132673462,    2132426076,    2132169372,    2131902819,    2131625839,    2131337814,    2131038071,    2130725884,
                2130400464,    2130060956,    2129706428,    2129335862,    2128948150,    2128542077,    2128116310,    2127669384,
                2127199684,    2126705429,    2126184645,    2125635140,    2125054474,    2124439924,    2123788438,    2123096586,
                2122360502,    2121575806,    2120737524,    2119839976,    2118876651,    2117840050,    2116721486,    2115510844,
                2114196275,    2112763806,    2111196842,    2109475525,    2107575886,    2105468731,    2103118128,    2100479358,
                2097496050,    2094096132,    2090185964,    2085641640,    2080295708,    2073916261,    2066172712,    2056577253,
                2044379170,    2028361017,    2006411282,    1974524985,    1924086944,    1832629731,    1617408757,    0,
                0,             1617408757,    1832629731,    1924086944,    1974524985,    2006411282,    2028361017,    2044379170,
                2056577253,    2066172712,    2073916261,    2080295708,    2085641640,    2090185964,    2094096132,    2097496050,
                2100479358,    2103118128,    2105468731,    2107575886,    2109475525,    2111196842,    2112763806,    2114196275,
                2115510844,    2116721486,    2117840050,    2118876651,    2119839976,    2120737524,    2121575806,    2122360502,
                2123096586,    2123788438,    2124439924,    2125054474,    2125635140,    2126184645,    2126705429,    2127199684,
                2127669384,    2128116310,    2128542077,    2128948150,    2129335862,    2129706428,    2130060956,    2130400464,
                2130725884,    2131038071,    2131337814,    2131625839,    2131902819,    2132169372,    2132426076,    2132673462,
                2132912027,    2133142231,    2133364504,    2133579246,    2133786832,    2133987609,    2134181906,    2134370029,
                2134552264,    2134728883,    2134900137,    2135066266,    2135227493,    2135384031,    2135536078,    2135683823,
                2135827444,    2135967108,    2136102975,    2136235196,    2136363913,    2136489262,    2136611370,    2136730360,
                2136846348,    2136959444,    2137069753,    2137177374,    2137282403,    2137384930,    2137485042,    2137582820,
                2137678345,    2137771690,    2137862928,    2137952128,    2138039354,    2138124671,    2138208139,    2138289814,
                2138369753,    2138448008,    2138524630,    2138599669,    2138673170,    2138745180,    2138815741,    2138884895,
                2138952682,    2139019140,    2139084306,    2139148217,    2139210906,    2139272407,    2139332751,    2139391968,
                2139450090,    2139507144,    2139563158,    2139618158,    2139672170,    2139725219,    2139777330,    2139828524,
                2139878825,    2139928254,    2139976833,    2140024581,    2140071517,    2140117662,    2140163034,    2140207650,
                2140251527,    2140294682,    2140337132,    2140378892,    2140419977,    2140460402,    2140500182,    2140539330,
                2140577860,    2140615785,    2140653117,    2140689869,    2140726054,    2140761681,    2140796764,    2140831313,
                2140865338,    2140898850,    2140931859,    2140964375,    2140996408,    2141027966,    2141059059,    2141089696,
                2141119885,    2141149634,    2141178952,    2141207846,    2141236325,    2141264396,    2141292066,    2141319341,
                2141346230,    2141372739,    2141398875,    2141424643,    2141450051,    2141475104,    2141499808,    2141524169,
                2141548193,    2141571886,    2141595252,    2141618298,    2141641027,    2141663446,    2141685558,    2141707370,
                2141728885,    2141750108,    2141771044,    2141791697,    2141812071,    2141832171,    2141851999,    2141871562,
                2141890861,    2141909902,    2141928687,    2141947220,    2141965506,    2141983547,    2142001346,    2142018908,
                2142036235,    2142053330,    2142070197,    2142086838,    2142103257,    2142119456,    2142135439,    2142151207,
                2142166764,    2142182113,    2142197255,    2142212193,    2142226931,    2142241469,    2142255812,    2142269960,
                2142283917,    2142297684,    2142311263,    2142324658,    2142337869,    2142350899,    2142363749,    2142376423,
                2142388921,    2142401245,    2142413398,    2142425381,    2142437196,    2142448844,    2142460327,    2142471647,
                2142482805,    2142493804,    2142504643,    2142515326,    2142525853,    2142536225,    2142546445,    2142556513,
                2142566431,    2142576200,    2142585821,    2142595296,    2142604626,    2142613811,    2142622853,    2142631754,
                2142640514,    2142649134,    2142657615,    2142665959,    2142674166,    2142682237,    2142690173,    2142697976,
                2142705645,    2142713182,    2142720588,    2142727863,    2142735008,    2142742024,    2142748912,    2142755672,
                2142762305,    2142768812,    2142775193,    2142781450,    2142787582,    2142793590,    2142799474,    2142805236,
                2142810876,    2142816394,    2142821791,    2142827066,    2142832222,    2142837257,    2142842173,    2142846970,
                2142851647,    2142856206,    2142860647,    2142864970,    2142869175,    2142873263,    2142877234,    2142881087,
                2142884824,    2142888444,    2142891948,    2142895335,    2142898606,    2142901760,    2142904799,    2142907722,
                2142910528,    2142913219,    2142915793,    2142918252,    2142920594,    2142922820,    2142924930,    2142926924,
                2142928801,    2142930561,    2142932204,    2142933731,    2142935140,    2142936431,    2142937605,    2142938661,
                2142939599,    2142940417,    2142941117,    2142941697,    2142942158,    2142942498,    2142942717,    2142942816,
                2142942792,    2142942647,    2142942379,    2142941987,    2142941472,    2142940832,    2142940067,    2142939176,
                2142938158,    2142937013,    2142935741,    2142934339,    2142932808,    2142931146,    2142929352,    2142927427,
                2142925368,    2142923175,    2142920847,    2142918382,    2142915780,    2142913039,    2142910159,    2142907138,
                2142903975,    2142900669,    2142897217,    2142893620,    2142889876,    2142885982,    2142881939,    2142877743,
                2142873394,    2142868891,    2142864230,    2142859411,    2142854432,    2142849291,    2142843986,    2142838515,
                2142832877,    2142827069,    2142821089,    2142814935,    2142808604,    2142802095,    2142795406,    2142788533,
                2142781474,    2142774226,    2142766788,    2142759156,    2142751327,    2142743299,    2142735069,    2142726633,
                2142717989,    2142709133,    2142700061,    2142690771,    2142681259,    2142671521,    2142661554,    2142651353,
                2142640915,    2142630236,    2142619311,    2142608135,    2142596706,    2142585017,    2142573064,    2142560842,
                2142548346,    2142535571,    2142522512,    2142509162,    2142495516,    2142481569,    2142467313,    2142452743,
                2142437852,    2142422633,    2142407079,    2142391183,    2142374938,    2142358336,    2142341368,    2142324027,
                2142306304,    2142288189,    2142269675,    2142250750,    2142231406,    2142211632,    2142191418,    2142170752,
                2142149623,    2142128020,    2142105929,    2142083338,    2142060235,    2142036604,    2142012432,    2141987704,
                2141962404,    2141936516,    2141910024,    2141882909,    2141855154,    2141826739,    2141797645,    2141767851,
                2141737336,    2141706076,    2141674048,    2141641228,    2141607590,    2141573106,    2141537749,    2141501489,
                2141464295,    2141426135,    2141386973,    2141346775,    2141305503,    2141263117,    2141219576,    2141174835,
                2141128849,    2141081569,    2141032943,    2140982917,    2140931435,    2140878435,    2140823853,    2140767621,
                2140709668,    2140649917,    2140588287,    2140524692,    2140459039,    2140391232,    2140321165,    2140248728,
                2140173802,    2140096259,    2140015963,    2139932768,    2139846517,    2139757041,    2139664158,    2139567671,
                2139467369,    2139363022,    2139254382,    2139141178,    2139023117,    2138899879,    2138771114,    2138636441,
                2138495439,    2138347648,    2138192561,    2138029615,    2137858192,    2137677599,    2137487070,    2137285745,
                2137072663,    2136846739,    2136606751,    2136351312,    2136078843,    2135787535,    2135475313,    2135139776,
                2134778131,    2134387115,    2133962885,    2133500880,    2132995650,    2132440618,    2131827774,    2131147258,
                2130386780,    2129530820,    2128559473,    2127446766,    2126158120,    2124646410,    2122845633,    2120660245,
                2117946285,    2114475712,    2109863304,    2103399895,    2093611260,    2076800911,    2039947284,    2019158312
            };

            probability::dist_normal m_distribution = probability::dist_normal::standard;

            result_type pdf(result_type x) const
            {
                return this->m_distribution.pdf(x);
            }

        public:
            result_type sample_from_box_horizontal(uniform_type box_index, uniform_type uniform_random, bool& is_interior) const
            {
                result_type z = uniform_random * this->m_width_scaled[box_index];
                is_interior = (uniform_random < this->m_coverage_scaled[box_index]);
                return z;
            }

            bool is_inside_box_vertical(uniform_type box_index, result_type horizontal, uniform_type uniform_random) const
            {
                result_type f = this->pdf(horizontal);
                return (this->m_bottom[box_index] + uniform_random * this->m_height_scaled[box_index] < f);
            }

            bool is_tail_box(uniform_type box_index) const
            {
                switch (box_index)
                {
                case 0: return true;
                case n_boxes - 1: return true;
                default: return false;
                }
            }

            template <typename t_engine_type>
            result_type sample_tail(uniform_type box_index, t_engine_type& uniform_generator)
            {
                const auto r = right_tail_x;
                const auto r_squared = r * r;
                double result = 0.0;
                double u1, u2;
                for (;;) // while (true)
                {
                    u1 = (uniform_generator() - t_engine_type::min()) / double_constants::two_pow_32;
                    u2 = (uniform_generator() - t_engine_type::min()) / double_constants::two_pow_32;
                    result = std::sqrt(r_squared - 2 * std::log(1.0 - u1));
                    if (u2 * result < r) return box_index == 0 ? result : -result;
                }
            }
        };
    }
}

#endif // AFTERMATH_RANDOM_ZIGGURAT_NORMAL_1024_LCG31_HPP_INCLUDED
